dashには配列がない。
配列宣言、初期化
$ A=() $ B=(111 "HOGE" 333) $ C[1]=jikken
()をつけて並べて書くと、添え字0から順につっこまれる
要素の取り出し
$ echo ${B[@]} 111 HOGE 333
並び順はよくわからない。
添え字が数字の分については、だいたい添え字の昇順に並んでいる。
ハッシュ宣言した分も
$ B=(1,"HOGE",3) $ echo ${B[@]} 1,HOGE,3 $ echo "${#B[@]}" 1
区切るのはホワイトスペースで。カンマでは区切れないので注意する
配列の代入、取り出し(いっこずつ)
$ A[2]="123" $ echo ${A[2]} 123 $ I=2 $ echo ${A[$I]} 123 ダメな例 $ echo $A[2] [2]
変数を { } でくくらないとかっこが文字列扱いで認識されるので注意する
配列の取り出し(まとめて、連続で)
配列を使った演算
$ [ "${A[$I]}" = "123" ] && echo YEAH! YEAH! $ A[$I]=$((A[$I]+2)) $ echo ${A[$I]} 125
かっこがどこまで必要かわからなくなるのでメモ
注意事項
すでに存在する配列に対して連想配列宣言はできない
$ Array[1]="1" $ declare -A Array -bash: declare: Array: cannot convert indexed to associative array $ unset Array $ declare -A Array $