文字列を渡すときに$ @が機能しないのはなぜですか?

文字列を渡すときに$ @が機能しないのはなぜですか?

たとえば、次のスクリプトを使用します。

#!/bin/bash
for a in $@
do
   echo $a
done

実行:./script "x y" zリターン:

x
y
z

いいえ:

x y
z


なぜそんなことですか?
スペースを含む文字列引数をbashにどのように渡しますか?

私は使用しますBash 4.3.33

ベストアンサー1

引用する$@

#!/bin/bash
for a in "$@"
do
  echo "$a"
done

出力:

XY

おすすめ記事