#navi(../)
* bashで配列を扱う方法 [#e803a690]
bashで配列を扱う方法を以下に記します。~
#contents
#htmlinsertpcsp(linux_ads_top.html,linux-sp.html)
* 配列の生成 [#r15720fb]
空の配列生成方法と初期値を代入する配列生成例を記します。
**空の配列生成 [#x5927b4b]
空の配列生成は以下のように()を使います。
ary=()
**初期値を指定した配列生成 [#ofdbf279]
スペース区切りで代入する値を指定します。
ary=("sakura" "tubaki")
*配列の操作 [#a2f88526]
以下に配列の操作例を記します。
** 配列の個数を調べる方法 [#k357160e]
配列の個数を調べる方法は以下の通りです。~
-サンプルスクリプト
#ref(ary_cnt.sh)
#!/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
**配列の位置を指定し表示する [#yf838344]
配列のインデックス値は0からはじまります。
-サンプルスクリプト
#ref(ary_idx.sh)
#!/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
** 既存の配列に追加 [#v3e4c1be]
既存の配列の最後に追加する方法を記します。
-サンプルスクリプト
#ref(ary_add.sh)
#!/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
#htmlinsertpcsp(linux_ads_btm.html,linux-sp.html)