bashで配列を扱う方法を以下に記します。
空の配列生成方法と初期値を代入する配列生成例を記します。
空の配列生成は以下のように()を使います。
ary=()
スペース区切りで代入する値を指定します。
ary=("sakura" "tubaki")
以下に配列の操作例を記します。
配列の個数を調べる方法は以下の通りです。
#!/bin/bash
ary1=("sakura" "tsubaki")
echo count: ${#ary1[@]}
ary2=(1 2 3 4 5)
echo count: ${#ary2[@]}$ chmod +x ary_cnt.sh $ ./ary_cnt.sh count: 2 count: 5
配列のインデックス値は0からはじまります。
#!/bin/bash
ary=("sakura" "tsubaki" "kiku")
echo no0 : ${ary[0]}
echo no2 : ${ary[2]}$ chmod +x ary_idx.sh $ ./ary_idx.sh no0 : sakura no2 : kiku
既存の配列の最後に追加する方法を記します。
#!/bin/bash
ary=("sakura" "tsubaki")
echo "Before"
for i in `seq 1 ${#ary[@]}`
do
echo ary\[`expr $i - 1`\] = ${ary[`expr $i - 1`]}
done
echo "After1"
ary=("${ary[@]}" "kiku")
for i in `seq 1 ${#ary[@]}`
do
echo ary\[`expr $i - 1`\] = ${ary[`expr $i - 1`]}
done
echo "After2"
ary=("momiji" "${ary[@]}")
for i in `seq 1 ${#ary[@]}`
do
echo ary\[`expr $i - 1`\] = ${ary[`expr $i - 1`]}
done$ chmod +x ary_add.sh $ ./ary_add.sh Before ary[0] = sakura ary[1] = tsubaki After1 ary[0] = sakura ary[1] = tsubaki ary[2] = kiku After2 ary[0] = momiji ary[1] = sakura ary[2] = tsubaki ary[3] = kiku