同じ問題に遭遇しました。見積もりが役立ちます
[email protected]:~/apps$ apps="abc
> def"
[email protected]:~/apps$ echo $apps
abc def
[email protected]:~/apps$ echo "$apps"
abc
def
引用 あなたの変数。理由は次のとおりです:
$ f="fafafda
> adffd
> adfadf
> adfafd
> afd"
$ echo $f
fafafda adffd adfadf adfafd afd
$ echo "$f"
fafafda
adffd
adfadf
adfafd
afd
引用符がない場合、シェルは $TEMP
を置き換えます 含まれる文字 (そのうちの 1 つは改行) を使用します。次に、echo
を呼び出す前に シェルは、Internal Field Separator
を使用してその文字列を複数の引数に分割します (IFS)、その結果の引数のリストを echo
に渡します .デフォルトでは、IFS
空白 (スペース、タブ、および改行) に設定されているため、シェルは $TEMP
を切り刻みます 文字列を引数に入れると、改行が表示されなくなります。これは、シェルが改行をスペースと同様に区切り文字と見なすためです。