- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- シェルスクリプト/文法/配列(連想配列) へ行く。
配列(連想配列)
配列(bash)
初期化
ARR[0]=1 ARR[1]=2 ARR[2]=3
または
ARR=(1 2 3)
添え字を指定して1つの要素を取得する
echo ${ARR[0]}
全要素を取得する
for a in ${ARR[@]}; do echo $a done
配列の大きさを取り出す
size=${#ARR[@]}
ループの中で初期化する
for i in 1 2 3; do n=${#ARR[@]} ARR[$n]=$i done
配列のpush(マージ)
ARR1=(1 2 3) ARR2=(7 8 9) ARR1=(${ARR1[@]} ${ARR2[@]}) ARR1=(${ARR1[@]} 0) echo "${ARR1[@]}" # => 1 2 3 7 8 9 0
連想配列
USER_NAME=taro USER_AGE=20 USER_SEX=man for key in NAME AGE SEX; do val=$(eval 'echo $USER_'$key) echo $val done
- 「連想配列名_キー名」のようなルールで変数を作る。
- ここでは連想配列名がUSER、キー名がNAME/AGE/SEX。
- 連想配列の値の取得は以下のようにして行っている。
- $()によるコマンド置換が行われる際に、$keyが展開されてNAMEやAGEのような文字列になる。
- 次にevalが実行される際に、'echo $USER'は展開されてecho $USERという文字列になり、事前に展開されていたNAMEやAGEと文字列連結され、echo $USER_NAMEやecho $USER_AGEがevalの引数になる。
- これでvalには$USER_NAMEや$USER_AGEの値が入る。