3
配列を関数に渡す最も正しい方法は何ですか?
私が非常に大きな配列を持っていると考えてください$large_list、配列を引数としてとる関数を書く方法はありますか?例えば: echo_idx_array () { arr="$1" idx="$2" echo "${arr[$idx]}" } そのようなことをするための通常の戦略は何ですか?変数を指定してみまし$large_listたが、空でした。 引数リストの変更に合わせて関数を変更するつもりです。 記録のために、私はksh88を使用しており、可能な限りポータブルな答えを探しています。 編集:これまでのところ私が思いつくことができる最善の方法は、配列をループして、各要素を関数の引数として送信することです。これは信じられないほど醜く、エラーが発生しやすいようです。言うまでもなく、すぐに制限に達します。これが私がしたことです: foo () { echo $* } cmd="foo " while [[ $i -lt $MAX_ARR_SIZE ]]; do cmd="$cmd ${large_list[$i]}" ((i=i+1)) done eval $cmd 何か良いことはありませんか?