Es gibt drei Anführungszeichen : das Escape-Zeichen , einfache Anführungszeichen und doppelte Anführungszeichen.
Ein Backslash ( \ ) ohne Anführungszeichen ist das
Escape-Zeichen . Der Literalwert des nächsten folgenden Zeichens wird beibehalten, mit Ausnahme von <newline>. Wenn ein \ <newline> -Paar angezeigt wird und der umgekehrte Schrägstrich nicht in Anführungszeichen steht, wird \ <newline> als Zeilenfortsetzung behandelt (dh, es wird aus dem Eingabestream entfernt und effektiv ignoriert).
Das Einschließen von Zeichen in einfache Anführungszeichen behält den Literalwert jedes Zeichens in den Anführungszeichen bei. Ein einfaches Anführungszeichen darf nicht zwischen einfachen Anführungszeichen stehen, auch wenn ein Backslash vorangestellt ist.
Wenn Sie Zeichen in doppelte Anführungszeichen setzen, bleibt der Literalwert aller Zeichen in den Anführungszeichen erhalten, mit Ausnahme von $ , ` , \ und, wenn die Verlaufserweiterung aktiviert ist ,! . Die Zeichen $ und ` behalten in Anführungszeichen ihre besondere Bedeutung. Der Backslash behält seine spezielle Bedeutung nur bei, wenn auf ihn eines der folgenden Zeichen folgt: $ , ` , " ,
\ oder <newline> . Ein doppeltes Anführungszeichen kann in doppelten Anführungszeichen gesetzt werden, indem ein Backslash vorangestellt wird wird durchgeführt, es sei denn ein! Das Erscheinen in doppelten Anführungszeichen wird mit einem Backslash abgeschlossen. Der Backslash vor dem ! wird nicht entfernt.
Die Sonderparameter * und @ haben in doppelten Anführungszeichen eine besondere Bedeutung (siehe PARAMETER unten).
Wörter der Form $ ' string ' werden speziell behandelt. Das Wort wird zu einer Zeichenfolge erweitert , wobei mit einem Backslash versehene Zeichen gemäß dem ANSI C-Standard ersetzt werden. Escape-Sequenzen für umgekehrte Schrägstriche werden, falls vorhanden, wie folgt dekodiert:
\ a alert (bell)
\ b backspace
\ e
\ e ein Escapezeichen
\ f Formularvorschub
\ n neue Zeile
\ r Wagenrücklauf
\ t horizontale Tabulatortaste
\ v vertikale Tabulatortaste
\\ Backslash
\ ' einfaches Anführungszeichen
\ " doppeltes Anführungszeichen
\ nnn die Acht-Bit-Zeichen, dessen Wert der Oktalwert nnn ist
(ein bis drei Ziffern)
\ x HH das Acht-Bit-Zeichen, dessen Wert der Hexadezimalwert HH ist
(ein oder zwei hexadezimale Ziffern)
\ u HHHH das Unicode-Zeichen (ISO / IEC 10646), dessen Wert ist
der Hexadezimalwert HHHH (eine bis vier Hexadezimalstellen )
\ U HHHHHHH
das Unicode-Zeichen (ISO / IEC 10646) mit dem Wert
der hexadezimale Wert HHHHHHHH (eine bis acht Hexadezimalstellen )
\ c x ein Steuer- x Zeichen
Das erweiterte Ergebnis wird in einfache Anführungszeichen gesetzt, als ob das Dollarzeichen nicht vorhanden gewesen wäre.
Eine Zeichenfolge in doppelten Anführungszeichen mit vorangestelltem Dollarzeichen ( $ " string " ) bewirkt, dass die Zeichenfolge entsprechend dem aktuellen Gebietsschema übersetzt wird. Wenn das aktuelle Gebietsschema C oder POSIX ist , wird das Dollarzeichen ignoriert. Wenn die Zeichenfolge übersetzt und ersetzt wird, wird die Ersetzung in doppelte Anführungszeichen gesetzt.
"$HOME"
"${USER:-root}"
"$(date)"
"`date`"
"$((1 + 2))"
"!!"
"\\"