このエントリーをはてなブックマークに追加


bashで配列を扱う方法

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


添付ファイル: fileary_add.sh 532件 [詳細] fileary_cnt.sh 593件 [詳細] fileary_idx.sh 518件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-03-20 (金) 22:27:08