Was sind in Bash die Unterschiede zwischen einfachen Anführungszeichen (''
) und doppelten Anführungszeichen (""
)?
Diese Antwort ist ziemlich verwirrend und führt nichts Neues zu den bereits guten Antworten hinzu.
Was sind in Bash die Unterschiede zwischen einfachen Anführungszeichen (''
) und doppelten Anführungszeichen (""
)?
Es gibt einen klaren Unterschied zwischen der Verwendung von ' '
und " "
.
Wenn ' '
um irgendetwas herum verwendet wird, erfolgt keine "Transformation oder Übersetzung". Es wird so gedruckt wie es ist.
Bei " "
wird alles, was es umgibt, in seinen Wert "übersetzt oder transformiert".
Unter Übersetzung/ Transformation verstehe ich Folgendes: Alles innerhalb der einfachen Anführungszeichen wird nicht in ihre Werte "übersetzt". Sie werden so übernommen, wie sie innerhalb der Anführungszeichen sind. Beispiel: a=23
, dann wird echo '$a'
$a
auf der Standardausgabe produzieren. Während echo "$a"
23
auf der Standardausgabe produzieren wird.
Diese Antwort ist ziemlich verwirrend und führt nichts Neues zu den bereits guten Antworten hinzu.
Dies war meiner Meinung nach eine kurze prägnante Antwort, ohne zu langatmig zu sein, die für mich leicht verständlich war. Bei der Übersetzung/Transformation meinen sie doppelte Anführungszeichen werden die Variable erweitern, während einfache Anführungszeichen die Variable nicht erweitern werden.
Was du als "Transformation oder Übersetzung" bezeichnest, wird normalerweise als Interpolation bezeichnet. Der Ausdruck 'foo $bar baz'
ist einfach die wörtliche Zeichenfolge foo $bar baz
, während "foo $bar baz"
den Wert der Variablen bar
in die Zeichenfolge zwischen den wörtlichen Symbolen foo
und baz
mit Leerzeichen dazwischen interpoliert.
Es wird eine minimale Antwort benötigt, damit die Leute problemlos starten können, ohne viel Zeit wie ich zu verbringen.
Das Folgende ist überraschenderweise (für diejenigen, die nach einer Antwort suchen) ein vollständiger Befehl:
$ echo '\'
dessen Ausgabe ist:
\
Backslashes haben überraschenderweise selbst für langjährige Benutzer von bash keine Bedeutung innerhalb von einfachen Anführungszeichen. Ebenso wenig wie sonst etwas.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
3 Stimmen
Siehe dazu (eine mögliche plattformübergreifende Dublette): Was ist der Unterschied zwischen "...", '...', $'...' und $"..." Anführungszeichen? von Unix & Linux Stack Exchange.
3 Stimmen
Der Titel sagt Bash, aber das gilt wirklich für jede Bourne-kompatible Shell (klassische Bourne-Shell, POSIX
sh
,ash
,dash
,ksh
, und - mit einigen Vorbehalten -zsh
).0 Stimmen
Verwandt: Gibt es einen syntaktischen Unterschied zwischen einfachen und doppelten leeren Zeichenfolgen?