シェルスクリプトで配列へのpush/pop
スポンサードリンク
配列listに値varをpush
n=${#list[@]} list[$n]=$var
配列のサイズを添字として、新たな要素を追加しているだけ。シェルスクリプトの配列のインデックスは0からです。
問題は、popです。
配列listから値varをpop
n=`expr "${#list[@]}" - 1` var=${list[$n]} unset list[$n] list=${list[@]}
"unset"は、配列の指定した要素を削除します。しかし、同時にインデックスは削除されず、空要素として残ってしまいます。
そのため、最後に別の配列に入れ直して、リセットする必要があります。