🍛
Bashで配列を使用する
配列を宣言するには、配列の変数名と =
に続けて、各要素の全体を ()
で囲みます。1つの要素内にスペースが含まれる場合は、 ""
や ''
で固めます。
veggies=(carrots onions "Italian tomatoes" potatoes)
変数を普通に呼ぶと、最初の要素が返ります[1]。
echo $veggies
carrots
2番目の要素を得るには、インデックスを指定します。変数名とインデックスを {}
で囲み、 $
から離す必要があります。
echo ${veggies[1]}
onions
末尾の要素は、インデックスの数字に -
を付けることでアクセスできます。
echo ${veggies[-1]}
potatoes
要素の全体を出力するには、インデックスに @
を与えます。 [@]
は全体という意味として解釈するとよさそうです。
echo ${veggies[@]}
carrots onions Italian tomatoes potatoes
変数名の前に #
を付けると、配列の要素の個数が得られます。 #
はnumber signとも呼ばれます。
echo ${#veggies[@]}
4
変数名の前に !
を付けると、各要素のインデックスが得られます。
echo ${!veggies[@]}
0 1 2 3
配列の要素を順に処理するには for
を使用します。配列は in
の後に置きますが、 ""
で固める必要があります[2]。
for veggie in "${veggies[@]}"
do
echo I added $veggie to my curry.
done
I added carrots to my curry.
I added onions to my curry.
I added Italian tomatoes to my curry.
I added potatoes to my curry.
""
で括らなかった場合、イタリア人がカレーに入ります。
for veggie in ${veggies[@]}
do
echo I added $veggie to my curry.
done
I added carrots to my curry.
I added onions to my curry.
I added Italian to my curry.
I added tomatoes to my curry.
I added potatoes to my curry.
Discussion