Quoting in Shell-Kommandos
Quoting in Shell-Kommandos
Es gibt eine ganze Reihe von Zeichen, die von der Shell besonders
behandelt werden, wenn sie in der Eingabezeile auftauchen. Diese
Zeichen werden dann im allgemeinen nicht dem aufgerufenen Programm
als Teil der Parameter übergeben, sondern steuern die Interpretation
der Kommandozeile durch die Shell.
Indem man Teile einer Kommandozeile in Anführungszeichen oder einzelne
Zeichen hinter ein Backslash setzt, nimmt man ihnen ihre spezielle
Bedeutung für die Shell.
Auf diese Weise kann man alle bzw. einige der folgenden Schritte
in der Lexikalischen Analyse der Shell-Eingabezeile verhindern.
Dabei sind EinfachHochkommas
(') stärker als doppelte ("), das heißt zum Beispiel,
daß Variablenersetzung
in doppelt gequoteten Strings noch stattfindet, in einfachen nicht.
Näheres in den folgenden Abschnitten zum Command line Parsing der Shell.
Die gequotete Zeichenkette wird in jedem Fall als ein Wort
behandelt, auch wenn sie ein oder mehrere Leerzeichen
enthält.
Mit der Voranstellung eines Backslash (\) nimmt man genau
einem Zeichen seine besondere Bedeutung. Einen Backslash selber kann man
als Parameterzeichen übergeben mit \\.
Backquotes
Anmerkung: Es gibt außerdem noch die Einschließung eines
Strings in rückwärts gerichtete Hochkommas: "`".
Dies hat jedoch nichts mit obigem Quoting zu tun; der darin
eingeschlossene String wird als eigene Kommandozeile zuerst
ausgeführt, und die Ausgabe dieses Kommandos dann anstelle
des Strings in die ursprüngliche Kommandozeile eingesetzt.
Beispiel: Nehmen wir an, in der Datei xy steht der String
"DEMO". Dann führt das Kommando
echo `cat xy` zur Ausgabe
von "DEMO" auf dem Bildschirm.