🖥

シェル — スペースが含まれる配列要素をループする

2023/08/26に公開

注意

コメント欄参照

検証

ループの中で、添え字を使って配列要素にアクセスする。

example.sh
arr=(
"Space delimited text A"
"Space delimited text B"
"Space delimited text C"
)


for ((i = 0; i < ${#arr[@]}; i++))
do
  echo "${arr[$i]}"
done

結果

$ bash example.sh
Space delimited text A
Space delimited text B
Space delimited text C

問題

以下の書き方では、スペースの区切りで別要素として扱われてしまっていた。

example.sh
arr=(
"Space delimited text A"
"Space delimited text B"
"Space delimited text C"
)

for item in ${arr[@]}; do
  echo "$item"
done
$ bash example.sh
Space
delimited
text
A
Space
delimited
text
B
Space
delimited
text
C

環境

  • bash 4.4.0

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2017-11-24

Discussion