Was ist der Unterschied zwischen einfachen und doppelten Anführungszeichen in der Bash-Shell?



Das Einschließen von Text in Anführungszeichen ist in der Befehlszeile ziemlich üblich, insbesondere bei Dateien mit Leerzeichen im Namen, aber woher wissen Sie, ob einfache oder doppelte Anführungszeichen verwendet werden sollen? Werfen wir einen Blick auf den Unterschied und wann Sie das eine oder das andere verwenden sollten.

Die allgemeine Regel ist, dass doppelte Anführungszeichen immer noch die Erweiterung von Variablen innerhalb der Anführungszeichen ermöglichen, einfache Anführungszeichen jedoch nicht. Weiter lesen.





Zitate mit einfachem Text

Wenn Sie nur ein paar Wörter einschließen, spielt es keine Rolle, welches Sie verwenden, da beide genau gleich funktionieren. Zum Beispiel erstellen diese beiden Befehle beide ein Verzeichnis namens Test Directory:

mkdir 'Test Directory'
mkdir 'Test Directory'



Erfahrenere Typen werden wahrscheinlich feststellen, dass Sie auch mkdir Test Directory verwenden können, wenn Sie möchten.

Shell-Variablen-Erweiterung

Der Unterschied zwischen einfachen und doppelten Anführungszeichen wird wichtiger, wenn Sie mit Variablen auf der Befehlszeile arbeiten – standardmäßig erweitert die bash eine Variable wie $test in den vollständigen String. Zuerst weisen wir die Variable zu:

test='This is a test'



Anzeige

Jetzt können Sie diese Variable in der Befehlszeile verwenden, die einfach ausgegeben werden sollte Das ist ein Test zur Konsole:

echo $test

Hier wird der Unterschied zwischen doppelten und einfachen Anführungszeichen deutlicher – wenn Sie einfache Anführungszeichen verwenden, werden die Variablen nicht erweitert. Wenn Sie beispielsweise diesen Befehl ausführen:

echo '$test'

Wenn Sie einfache Anführungszeichen verwenden, sehen Sie in der Befehlszeile nur '$test', aber es wird richtig ausgegeben, wenn Sie doppelte Anführungszeichen verwenden:

Das gleiche funktioniert, wenn Sie das Zeichen ` verwenden, um einen Befehl in der Befehlszeile zu erweitern. Angenommen, Sie wollten die pwd Befehl innerhalb eines anderen Befehls – Sie würden Backticks verwenden, um die Shell anzuweisen, sie zu erweitern:

echo `pwd`/test

Wenn Sie sich in Ihrem Home-Ordner befinden, sehen Sie eine Ausgabe, die wie folgt aussieht:

/home/aussenseiter/test

Angenommen, Sie befinden sich in einem Ordner mit einem Leerzeichen im Pfad und möchten mit dem Befehl ln einen symbolischen Link zu einer Datei im aktuellen Verzeichnis erstellen. Normalerweise müssen Sie den vollständigen Pfad angeben, wenn Sie den ln-Befehl verwenden, daher ist es viel einfacher, `pwd` zu verwenden, um sich die Eingabe zu sparen.

Anzeige

Schauen Sie, was passiert, wenn Sie versuchen, den Befehl ohne Anführungszeichen zu verwenden:

ln –s `pwd`/test /home/geek/linkedname

Stattdessen müssen Sie in Anführungszeichen setzen:

ln –s '`pwd`/filename' /some/other/path

Nehmen wir für ein konkreteres Beispiel an, dass wir eine Ordnerstruktur wie in diesem Beispiel haben, in der alle Dateinamen Leerzeichen enthalten:

Da der Befehl unzip die Verwendung von * nicht unterstützt, um ihn für alle Dateien auszuführen, müssen Sie stattdessen den Befehl for verwenden. Hier wird es interessant:

for f in *.zip;do unzip $f;done

Hoppla! Scheint nicht funktioniert zu haben.

Stattdessen müssen wir die Variable $f in doppelte Anführungszeichen setzen, wie folgt:

for f in *.zip;do unzip '$f';done

Jedes Mal, wenn der for-Befehl die Schleife durchläuft, wird er tatsächlich einen Befehl wie diesen ausführen:

unzip 'test 1.zip'

Natürlich würde es für jede Datei im Verzeichnis eine Schleife durchlaufen und einen ähnlichen Befehl ausführen.

Lassen Sie uns überprüfen

Nachdem wir nun die Beispiele durchgegangen sind, werden wir es nur kurz überprüfen, falls Sie es verpasst haben:

Anführungszeichen

  • Verwenden Sie diese Option, wenn Sie Variablen einschließen oder die Shell-Erweiterung innerhalb einer Zeichenfolge verwenden möchten.
  • Alle darin enthaltenen Zeichen werden als normale Zeichen interpretiert, mit Ausnahme von $ oder `, die auf der Shell erweitert werden.

Einzelzitate

  • Alle Zeichen in einfachen Anführungszeichen werden als Zeichenfolgen interpretiert.
Anzeige

Und damit endet die Lektion der Zitate. Verwenden Sie sie mit Bedacht.

WEITER LESEN Profilfoto für Lowell Heddings Lowell Heddings
Lowell ist Gründer und CEO von How-To Geek. Er leitet die Show seit der Erstellung der Site im Jahr 2006. In den letzten zehn Jahren hat Lowell persönlich mehr als 1000 Artikel geschrieben, die von über 250 Millionen Menschen angesehen wurden. Bevor Lowell mit How-To Geek begann, arbeitete er 15 Jahre lang in der IT mit Beratungs-, Cybersicherheits-, Datenbankmanagement- und Programmierarbeiten.
Vollständige Biografie lesen

Interessante Artikel