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:
Anzeige
test='This is a test'
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.
AnzeigeSchauen 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.
Und damit endet die Lektion der Zitate. Verwenden Sie sie mit Bedacht.
WEITER LESEN- › Die 20 besten How-To-Geek-Linux-Artikel des Jahres 2010
- & rsaquo; Der Anfängerleitfaden für Shell Scripting 3: Weitere grundlegende Befehle und Ketten
- › So finden Sie Ihr Spotify Wrapped 2021
- › Der Computerordner ist 40: Wie Xerox Star den Desktop erstellte
- & rsaquo; Cyber Monday 2021: Die besten Apple-Angebote
- & rsaquo; Cyber Monday 2021: Die besten Tech-Deals
- › 5 Websites, die jeder Linux-Benutzer mit einem Lesezeichen versehen sollte
- › Funktionen vs. Formeln in Microsoft Excel: Was ist der Unterschied?
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