#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS