Shell Quotes

Meta- Zeichen Unixoider Systeme sind unter Anderem das ‚*‘ oder ‚?‘- Zeichen, beispielsweise im Zusammenspiel mit dem ‚ls‘ Kommando. 

Möchte man solche Zeichen aber in der Ausgabe mit ‚echo‘ oder ‚printf‘ zur Ausgabe benutzen, dann muss man das dem Interpreter der Shell sagen. Das geht indem man dem Zeichen entweder ein ‚\‘ voranstellt oder es in die ‚ bzw. “ Zeichen einschließt:

echo \*

echo ‚*‘

echo „*“

Diese Technik wird als Quoting bezeichnet. Alle drei der oben gezeigten Methoden machen im Prinzip das Selbe. Der Unterschied ist der:

\
Ist die stärkste Form des Quoting.  Für einzelne Zeichen.

 


Strong Quoting
Alle Zeichen werden ausgegeben, auch das ‚$‘. Das heist, Inhalte von Variablen werden nicht berücksichtigt: echo ‚$Hallo‘ hat ‚$Hallo‘ zum Ergebnis.

 


Weak Quoting
Wenn man Meta- Zeichen ausgeben möchte, aber die Inhalte von Variablen und Kommandos (zwischen den ` Zeichen) berücksichtigen möchte, dann sollte man diese Form benutzen: echo „Hallo das ist der Inhalt von $i“. Gibt den angegebenen Text und den Inhalt der Variablen ‚i‘ aus. wenn Sie das so machen: echo ‚Hallo das ist der Inhalt von $i‘ dann ist das Ergebnis: Hallo das ist der Inhalt von $i.

Eine spezielle Bedeutung dabei hat das ` – Zeichen. Es wird nicht als Quote verstanden, sondern als  Kommando- Ersatz:

echo Sie sind im Verzeichnis: `ls`

oder etwa:

echo Heute ist der `date`

 

 

Advertisements