0

私はちょうどそれを学びました、引用はいくつかの場合に大きな違いを生む、そして私はそれをテストするために何かをしました、これが私がちょうどしたことです、

$ xfs=$(find . -type f -perm -111)  #find all files with x-perm
$ echo "$xfs"
./b.out 
./a.out
$ echo $xfs
./b.out ./a.out  #why all in one line, but the above takes two?

$xfsが含まれている場合\n、AFAIKecho -eは展開されますが、 2行\nを取るにはどうすればよいですか?echo "$xfs"

4

1 に答える 1

4

通常、シェルでは空白は引数の区切り文字と見なされます。したがって、最初の例には 2 つの引数があります。echo1 つのスペースで区切られた引数を出力します。これが 2 番目の例で見られる動作です。

ただし、引用符を使用すると、それらの間にあるものはすべて 1 つの引数になり、文字どおりに出力されます。最初の例の1つの引数にはすでに改行が含まれているため、改行で出力されます。

ビルトインの-eオプションは、次のbash echoようなエスケープ シーケンスの展開を制御し\nます。ただし、エスケープ シーケンスはありません。変数には、リテラルの改行が含まれています。

于 2012-02-24T07:39:51.023 に答える