Linux‎ > ‎

シェル - 配列

変数の宣言の例

以下の3パターンはすべて等価です。

VALS[0]=123
VALS[1]=789
VALS[2]="abc def"
VALS[3]=xyz

VALS=(123 789 "abc def" xyz)

VALS=([1]=789 [0]=123 [3]=xyz [2]="abc def")

配列のインデックスを変数で指定する場合書き方

どちらでもOKです。
INDEX=1
echo ${VALS[INDEX]}
echo ${VALS[${INDEX}]}

配列のサイズの取得

どちらでもOKです。
echo ${#VALS[@]}
echo ${#VALS[*]}

配列の全要素を半角空白区切りの文字列として取得

どちらでもOKです。
echo ${VALS[@]}
echo ${VALS[*]}

配列の全要素をループで処理

for var in "${VALS[@]}"; do
	echo ${var}
done

※配列の要素数だけループさせる処理を書く場合には「"${VALS[@]}"」とするのがいいです。理由はこちらを参照してください。