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 $var
die Erweiterung von in $var
nicht in Anführungszeichen erfolgt, wird es aufgeteilt. Die Shell läuft echo
mit den 5 Argumenten: Pradeep
, is
, a
, good
, boy
. echo
druckt alle ihre Argumente durch ein Leerzeichen getrennt.
In erfolgt echo "$var"
die Erweiterung von $var
in Anführungszeichen, sodass es nicht aufgeteilt wird. Die Shell wird echo
mit einem einzigen Argument ausgeführt,
Pradeep
is
a good
boy
das echo
originalgetreu druckt.