PHP'lerdeki $array[] = 'foo';
gibi bir şeyi bash ile yapmanın bir yolu var mı?
array[0] = 'foo'
array[1] = 'bar'
Evet, var:
ARRAY=()
ARRAY+=('foo')
ARRAY+=('bar')
Bir atama deyiminin bir kabuk değişkenine veya dizi dizinine bir değer atadığı bağlamda (bkz. Diziler), '+=' işleci değişkenin önceki değerine eklemek veya ilave etmek için kullanılabilir.
$ declare -a arr
$ arr=("a")
$ arr=("${arr[@]}" "new")
$ echo ${arr[@]}
a new
$ arr=("${arr[@]}" "newest")
$ echo ${arr[@]}
a new newest
Diziniz her zaman sıralıysa ve 0'dan başlıyorsa, bunu yapabilirsiniz:
array[${#array[@]}]='foo'
# gets the length of the array
${#array_name[@]}
Eşittir işareti arasında yanlışlıkla boşluk kullanırsanız:
array[${#array[@]}] = 'foo'
Ardından şuna benzer bir hata alırsınız:
array_name[3]: command not found