Grundlegende logische Operationen in Linux verstehen
Die Linux-Shell bietet mehrere Möglichkeiten, Befehle und Bedingungen mithilfe von logischen Operatoren zu kombinieren. In diesem Schritt lernen Sie die am häufigsten verwendeten logischen Operatoren kennen: &&
(UND) und ||
(ODER).
Zunächst wechseln wir in unser Projektverzeichnis:
cd ~/project
Lassen Sie uns einige Testdateien erstellen, die wir während dieses Labs verwenden werden:
touch treasure_map.txt shield.txt kings_gauntlet.txt
Jetzt erstellen wir ein Skript, um grundlegende logische Operationen zu demonstrieren. Wir verwenden den nano
-Texteditor, um eine Datei namens logic_basics.sh
zu erstellen:
nano logic_basics.sh
In diesem Skript verwenden wir logische Operatoren, um zu prüfen, ob zwei Dateien existieren. Geben oder fügen Sie den folgenden Code in den Editor ein:
#!/bin/bash
## This script demonstrates logical AND (&&) and OR (||) operators
## It checks if two specific files exist in the current directory
if [[ -f "treasure_map.txt" ]] && [[ -f "shield.txt" ]]; then
echo "Both files exist. Proceed with the mission."
else
echo "One or both files are missing. Abort the mission!"
fi
Der &&
-Operator bedeutet "UND" – beide Bedingungen müssen wahr sein, damit die Gesamtbedingung wahr ist.
Der -f
-Test prüft, ob eine Datei existiert und eine reguläre Datei ist (kein Verzeichnis oder andere spezielle Datei).
Um die Datei in nano zu speichern, drücken Sie Ctrl+X
, dann Y
, um das Speichern zu bestätigen, und Enter
, um den Dateinamen zu bestätigen.
Jetzt machen wir das Skript ausführbar und führen es aus:
chmod +x logic_basics.sh
./logic_basics.sh
Sie sollten die folgende Ausgabe sehen:
Both files exist. Proceed with the mission.
Lassen Sie uns ein weiteres Beispiel versuchen, um logische Operatoren besser zu verstehen. Erstellen Sie ein neues Skript namens logical_or.sh
:
nano logical_or.sh
Fügen Sie den folgenden Inhalt hinzu:
#!/bin/bash
## This script demonstrates the logical OR (||) operator
## It checks if at least one of two files exists
if [[ -f "treasure_map.txt" ]] || [[ -f "nonexistent_file.txt" ]]; then
echo "At least one file exists."
else
echo "Neither file exists."
fi
Der ||
-Operator bedeutet "ODER" – wenn eine der Bedingungen wahr ist, ist die Gesamtbedingung wahr.
Speichern Sie die Datei (Ctrl+X
, Y
, Enter
), machen Sie sie ausführbar und führen Sie sie aus:
chmod +x logical_or.sh
./logical_or.sh
Ausgabe:
At least one file exists.
Dies zeigt, dass die Bedingung auch dann wahr ist, wenn "nonexistent_file.txt" nicht existiert, weil "treasure_map.txt" existiert.