$var と "$var" の違いは何ですか?

$var と "$var" の違いは何ですか?

重複の可能性あり:
$VAR と ${VAR} および引用符を付けるかどうか

変数 var に次のように値を割り当てました。

pradeep@pradeep-laptop:~$ var="Pradeep
> is     
> a good
> boy"

次に、次のように echo コマンドを発行しました。

pradeep@pradeep-laptop:~$ echo $var
Pradeep is a good boy

そして、コマンド:

pradeep@pradeep-laptop:~$ echo "$var"
Pradeep
is 
a good
boy

出力に違いがある理由を知りたいです。

答え1

二重引用符()内での展開は"行われない。フィールド分割


ではecho $var、 の展開は$var二重引用符内では行われないため、分割が行われます。シェルはecho5 つの引数、Pradeepis、、で実行されます。 は、 aすべての引数をスペースで区切って出力します。goodboyecho

ではecho "$var"、 の展開は$var二重引用符内で行われるため、分割は行われません。シェルはecho単一の引数で実行されます。

Pradeep
is
a good
boy

忠実echoに印刷します。

関連情報