配列のセット

12月 27, 2009

シェルスクリプトにおいて、「配列」は変数に番号をつけたもの、と捉えておくと
わかりやすい、、、かもしれない。
配列は 配列名 [要素] と表現される。

配列のセット
配列へ値をセットする書式は以下のふたつがある。

配列名=( 値1 値2 値3 ・・・)
配列名[n]=値


値のインデックスは0から始まる。1からスタートさせたい場合は以下のように明示的に指定する。

配列名=( [1]=値 [2]=値 [3]=値 ・・・)


配列の値を参照するには、${ 配列名[n]}とする。
${ 配列名[*] }または${ 配列名[@] }で、配列にセットされている全ての値を参照。
配列の要素が何個あるのかは${ #配列名[*] }または${#配列名[@] }で参照可能。
${# 配列名[n] }で配列の要素の値の長さを参照。

${ 配列名[n] } ←配列の値
${ 配列名[*] } or { 配列名[@] } ←配列にセットされている全ての要素
${ #配列名[*] } or ${#配列名[@] } ←配列の要素の数
${# 配列名[n] } ←配列の要素の値の長さ


配列の破棄
unsetで配列のデータを破棄することができる。

unset 配列名
unset 配列名[n]


以下、配列のセット、参照、破棄までの例。

$ animal=(cat dog monkey horse elephant) ←配列animalをセット
$
$ declare -ap animal ←declareコマンドで配列animalの属性と値を確認
declare -a animal=’([0]=”cat” [1]=”dog” [2]=”monkey” [3]=”horse” [4]=”elephant”)’
$
$ echo ${animal[*]}
cat dog monkey horse elephant ←配列animalにセットされている全ての値
$
$ echo ${animal[@]}
cat dog monkey horse elephant
$
$ echo ${animal[0]}
cat
$ echo ${animal[4]} ←配列の中で[4]にセットされている要素
elephant
$
$ echo ${#animal[@]} ←配列animalの要素の数
5
$ echo ${#animal[0]}
3
$ echo ${#animal[4]} ←配列の中で[4]にセットされている要素の長さ
8
$
$ unset animal[3] ←要素[3]を破棄
$ declare -ap animal
declare -a animal=’([0]=”cat” [1]=”dog” [2]=”monkey” [4]=”elephant”)’ ←[3]=”horse”が削除された
$
$ unset animal ←配列すべてを破棄
$ declare -ap animal
-bash: declare: animal: not found ←配列自体が削除された

Categories: shell

No Responses so far | Have Your Say!

Comments are closed.