1. ホーム

[解決済み】Bashで配列の要素を別行動で表示する?

2022-03-31 13:25:51

質問

Bashの配列の要素を別行動で表示するにはどうしたらいいですか?これはうまくいくのですが、きっともっといい方法があるはずです。

$ my_array=(one two three)
$ for i in ${my_array[@]}; do echo $i; done
one
two
three

これを試したが、うまくいかなかった。

$ IFS=$'\n' echo ${my_array[*]}
one two three

解決方法は?

次のようにしてみてください。

$ printf '%s\n' "${my_array[@]}"

との違いは $@$* :

  • 引用されないと、結果は不特定多数になります。Bashでは、両方とも別々の引数に展開されます。 とし、ワードスプリットしてグローブ化する。

  • 引用元 "$@" は各要素を個別の引数として展開するのに対し "$*" は、1つの引数に統合された引数に展開されます。 "$1c$2c..." (ここで c は の最初の文字が IFS ).

ほとんどの場合 "$@" . 同じことが "${arr[@]}" .

必ず引用してください