#! /bin/bash
declare -a input # unnecessary
declare -a bad
declare -a good # unnecessary
input=('alpha 23' 'bravo 79' 'charlie 12')
echo "input is " ${#input[@]} "long"
for x in "${input[@]}"
do
bad=$x
good[ ${#good[@]} ]=$x
echo
echo "added '$x', good is now " ${#good[@]} "long, bad is still " ${#bad[@]} "long"
done
以下のコードを出力はbashのmanページによれば
input is 3 long
added 'alpha 23', good is now 1 long, bad is still 1 long
added 'bravo 79', good is now 2 long, bad is still 1 long
added 'charlie 12', good is now 3 long, bad is still 1 long
ある...「場合、インデックス付きアレイに割り当てる際に考慮アレイに追加しますオプションの角かっこと添え字が指定されている場合、そのインデックスは、に割り当てられます。割り当てられた要素のインデックスは、ステートメントと1つのに割り当てられた最後のインデックスです。
私は、「bad = $ x」という文が実行されるたびにインデックスを自動的にインクリメントすることを期待していたので、太字の部分はわかりません。毎回悪い[0]に割り当てられておらず、割り当てられています。
は、なぜそれが私が期待したものやっていないと私は良いに割り当てる不器用なラインよりもコードを書くのより良い方法がある[は..]
[Bash:キーを指定せずに配列に値を追加](http://stackoverflow.com/q/1951506/3 776858) – Cyrus