Zitiermechanismen in Linux
In der Linux-Shell haben viele Sonderzeichen ihre eigenen besonderen Bedeutungen. Manchmal werden sie verwendet, um eine Aktion auszuführen, während sie manchmal nur als Zeichen verwendet werden. Der Zitiermechanismus führt diese Aufgabe aus und lässt uns sie so verwenden, wie wir es möchten.
Metazeichen: Dies sind die Sonderzeichen, die zuerst von der Shell interpretiert werden, bevor sie an den Befehl übergeben werden. Sie werden auch als Shell-Wildcards bezeichnet.
- $ Variable Substitution oder Erweiterung des Wertes von Variable.
- > Wird für die Ausgabeumleitung verwendet.
- >> Wird für die Ausgabeumleitung zum Anhängen verwendet.
- < Eingabeumleitung.
- << wird zur Eingabeumleitung verwendet und ist auch als Here-Dokument bekannt.
- * Passen Sie eine beliebige Anzahl von Zeichen an, Substitutionsplatzhalter für null oder mehr Zeichen
- ? Übereinstimmung mit einem Zeichen, Substitutions-Wildcard für 1 Zeichen
- [] Zeichenbereich abgleichen, Ersetzungsplatzhalter für beliebige Zeichen zwischen Klammern
- `cmd` Ersetzen Sie cmd durch den auszuführenden Befehl und führt diesen aus, Platzhalterzeichen für die Befehlsausführung
- $(cmd) Ersetzen Sie cmd durch den auszuführenden Befehl und führt diesen aus, Platzhalterzeichen für die Befehlsausführung
- | Pipe ist eine Umleitung, um die Ausgabe eines Befehls/Programms/Prozesses zur weiteren Verarbeitung an einen anderen Befehl/ein anderes Programm/einen anderen Prozess zu senden.
- ; Der Befehlstrenner wird verwendet, um 2 oder mehr Befehle mit einer Anweisung auszuführen.
- || ODER bedingte Ausführung der Befehle.
- && UND bedingte Ausführung der Befehle.
- () Gruppiert den Befehl in einem Ausgabestream.
- & führt den Befehl im Hintergrund aus und zeigt die zugewiesene Pid an.
- # etwas kommentieren.
- $ Um den Wert einer Variablen zu erweitern.
- \ wird verwendet, um der Interpretation eines Zeichens zu entgehen oder dies zu verhindern.
Das Escape-Zeichen oder der umgekehrte Schrägstrich
Ein Backslash('\') ist das Bash-Escape-Zeichen. Jedes Zeichen, das unmittelbar auf den Backslash folgt, verliert seine besondere Bedeutung und jeder Buchstabe, der auf den Backslash folgt, erhält seine besondere Bedeutung. Geben Sie im Terminal die folgenden Befehle ein.
echo "Quotation" echo \"Quotation\"
Wie am Beispiel zu sehen ist, konnten Double nicht ohne Backslash und mit Backslash gedruckt werden, da sie ihre besondere Bedeutung verloren, also wurden sie gedruckt.
Die Backslash-escaped-Zeichen
\a Alarm (Glocke)
\b Backspace
\e ein Escape-Zeichen
\f Seitenvorschub
\n neue Zeile
\r Carriage Return
\t horizontaler Tabulator
\v vertikaler Tabulator
\\ Backslash
\' einfaches Anführungszeichen
\nnn das Acht-Bit-Zeichen, dessen Wert ist der Oktalwert nnn (ein bis drei Ziffern)
\xHH das Acht-Bit-Zeichen, dessen Wert der Hexadezimalwert HH (ein oder zwei Hexadezimalziffern) ist
\cx ein Steuer-x-Zeichen
Die einzelnen Anführungszeichen
Einfache Anführungszeichen (”) werden verwendet, um den wörtlichen Wert jedes Zeichens innerhalb der Anführungszeichen beizubehalten. Ein einfaches Anführungszeichen darf nicht zwischen einfachen Anführungszeichen stehen, selbst wenn ein umgekehrter Schrägstrich vorangestellt ist. Alle Sonderzeichen innerhalb der einfachen Anführungszeichen verlieren ihre besondere Bedeutung.
Einige Zeichenfolgen enthalten viele Sonderzeichen, sodass es schwierig ist, vor jedem Sonderzeichen einen umgekehrten Schrägstrich zu verwenden. Wenn wir also denselben String in einfache Anführungszeichen setzen, verlieren die meisten Sonderzeichen ihre besondere Bedeutung. Geben Sie im Terminal die folgenden Befehle ein.
echo \<Welcome\>\<to\>\<geeksforgeeks\> echo '<Welcome><to><geeksforgeeks>'
Sie können aus dem Beispiel ersehen, dass wir in der ersten Anweisung viele Backslashes verwenden mussten, was es komplex machte. Während mit einfachen Anführungszeichen die Ausgabe ohne Verwendung von Backslash gleich war
Die doppelten Anführungszeichen
Doppelte Anführungszeichen („“) behalten den wörtlichen Wert aller Zeichen innerhalb der Anführungszeichen bei, mit Ausnahme von „$“, „`“, „\“ und „!“, wenn die Verlaufserweiterung aktiviert ist. Der Backslash behält seine besondere Bedeutung nur, wenn ihm eines der folgenden Zeichen folgt: '$', '''', ''''', '\' oder Newline. Geben Sie im Terminal die folgenden Befehle ein.
name=geeksforgeeks echo '$name' echo "$name"
Sie können sehen, dass bei einfachen Anführungszeichen der Wert der Variablen nicht gedruckt wurde, während bei doppelten Anführungszeichen der Wert der Variablen gedruckt wurde.
Die Rückenzitate
Back Quotes(“) werden verwendet, um einen Befehl auszuführen. Alles, was dazwischen eingeschlossen ist, wird als Befehl behandelt und ausgeführt. Öffnen Sie das Terminal und führen Sie die folgenden Befehle aus.
hostname=`hostname` echo $hostname
Sie können aus dem Beispiel sehen, dass der Befehl hostname ausgeführt und der Name in der Variablen gespeichert wird.