1

関数で配列を直接定義すると、以下が期待どおりに機能します。

function each {
  local array=(1 2 3)
  len=${#array[*]}
  for (( i=0; i<len; i++ )); do
    echo ${array[$i]}
  done
}

each

# outputs;

1
2
3

しかし、配列を引数として渡して同じ出力を得る方法がわかりません。

function each {
  local array=$1
  len=${#array[*]}
  for (( i=0; i<len; i++ )); do
    echo ${array[$i]}
  done
}

array=(1 2 3)
each array

# outputs;

array

助けてくれてありがとう、ありがとう。

4

1 に答える 1

1

配列要素を個別の位置パラメーターとして関数に渡します。

function f() {
    local array = "$@";
    # ...
}

## calling your function
f ("${array[@]}")
于 2013-02-24T14:07:13.170 に答える