代入
$ array=(1 2 3 4)
値確認
変数名だけだと、インデックス[0]の呼び出し $ echo $array 1 インデックスを付けて各要素を呼び出す $ echo ${array[0]} 1 $ echo ${array[1]} 2 $ echo ${array[2]} 3 $ echo ${array[3]} 4 値がないものは、「ない」 $ echo ${array[4]} {}でくくり忘れるとこうなる $ echo $array[3] 1[3] 全要素出力 $ echo ${array[@]} 1 2 3 4 要素数? $ echo ${#array[@]} 4 $ echo ${#array} 1
値代入
インデックスを指定しないと、インデックス[0]への代入 $ array=2 $ echo $array 2 $ echo ${array[0]} 2 $ echo ${array[@]} 2 2 3 4 インデックスを指定して値代入 $ array[1]=5 $ echo ${array[@]} 2 5 3 4 文字列も代入できます $ array[2]=abcd $ echo ${array[@]} 2 5 abcd 4 インデックス値は間を飛ばしてもいい $ array[5]=xyz $ echo ${array[@]} 2 5 abcd 4 xyz 要素数?、配列として、インデックス0~5(4は値無し)で6要素あるつもりなのだが $ echo ${#array[@]} 5 勝手に配列が詰められたわけではなく、インデックス4には値はない(厳密には使用されていない) $ echo ${array[4]} $ echo ${array[5]} xyz
$# は何だろう
$ value=2 $ echo ${#value} 1 $ echo ${array[@]} 2 5 abcd 4 xyz $ echo ${#array[@]} 5 $ echo ${#array[0]} 1 $ echo ${#array[1]} 1 $ echo ${#array[2]} 4 $ echo ${#array[3]} 1 $ echo ${#array[4]} 0 $ echo ${#array[5]} 3 各変数が返す値の長さを返している。 $ unset array[2] $ echo ${array[@]} 2 5 4 xyz $ echo ${#array[@]} 4 ${array[@]}は、配列として見ているので、個々の要素の長さの合計値ではなく、値を持つ(使用されている)要素の数