配列を作成する

シェルスクリプトで配列は要素をスペースで区切って全体を括弧で括ることで定義する。

$ a=(1 2 3)
$ for i in $a ; do echo $i ; done
1
2
3

変数に代入するときにイコールの前後にスペースを入れるとエラーになる。

$ a = (1 2 3)
zsh: unknown file attribute: 1

配列に追加する

+=で配列の最後に要素を追加できる。

$ a=(1 2 3)
$ a+=4
$ for i in $a ; do echo $i ; done
1
2
3
4

配列を追加すると最後の要素に配列として追加される。

$ a+=(4 5)
$ for i in $a ; do echo $i ; done
1
2
3
4 5

配列を結合する

配列の結合をする場合は[@]を付けて展開して再度配列にすると展開した状態で結合できる。

$ a=(1 2 3)
$ b=(4 5)
$ a+=(${b[@]})
$ for i in $a ; do echo $i ; done
1
2
3
4
5

括弧をつけないと最後の要素として追加になる。

$ a=(1 2 3)
$ b=(4 5)
$ a+=${b[@]}
$ for i in $a ; do echo $i ; done
1
2
3
4 5