Was ist der Unterschied zwischen $var und „$var“?

Was ist der Unterschied zwischen $var und „$var“?

Mögliches Duplikat:
$VAR vs. ${VAR} und zitieren oder nicht zitieren

Ich habe einer Variablen var wie folgt einen Wert zugewiesen:

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

Dann habe ich einen Echo-Befehl wie folgt ausgegeben:

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

und für den Befehl:

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

Ich möchte wissen, warum es Unterschiede in der Ausgabe gibt.

Antwort1

Erweiterungen, die in doppelten Anführungszeichen ( ") vorkommen, werden nichtFeldaufteilung.


Da echo $vardie Erweiterung von in $varnicht in Anführungszeichen erfolgt, wird es aufgeteilt. Die Shell läuft echomit den 5 Argumenten: Pradeep, is, a, good, boy. echodruckt alle ihre Argumente durch ein Leerzeichen getrennt.

In erfolgt echo "$var"die Erweiterung von $varin Anführungszeichen, sodass es nicht aufgeteilt wird. Die Shell wird echomit einem einzigen Argument ausgeführt,

Pradeep
is
a good
boy

das echooriginalgetreu druckt.

verwandte Informationen