Übersicht
Der Befehl test wertet den angegebenen Ausdruck aus und gibt den Exit-Status 0 zurück, wenn das Ergebnis wahr ist, und 1, wenn es falsch ist. Dies wird hauptsächlich für die bedingte Ausführung in Shell-Skripten wie `if` und `while` verwendet. Der Befehl `[` ist eine andere Form des Befehls `test`, und `[[` bietet erweiterte Funktionen in Bash/Ksh/Zsh.
Hauptfunktionen
- Überprüfung von Dateitypen und -attributen
- Vergleich von Zeichenkettenwerten
- Vergleich von Ganzzahlwerten
- Logische Operationen (AND, OR, NOT)
Hauptoptionen
Der Befehl test verwendet verschiedene unäre und binäre Operatoren zur Auswertung von Bedingungsausdrücken.
Überprüfung von Dateieigenschaften
Zeichenkettenvergleich
Ganzzahlvergleich
Logische Operatoren
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`test` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Verschiedene Beispiele für die Auswertung von Bedingungsausdrücken mit dem Befehl test.
Überprüfung der Dateiexistenz
if test -e /etc/passwd; then echo "Die Datei /etc/passwd existiert."; fi
Überprüft, ob die Datei `/etc/passwd` existiert.
Überprüfung, ob es sich um ein Verzeichnis handelt
if test -d /tmp; then echo "/tmp ist ein Verzeichnis."; fi
Überprüft, ob `/tmp` ein Verzeichnis ist.
Zeichenkettenvergleich
MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "Der Variablenwert ist hello."; fi
Überprüft, ob der Wert der Variablen `MY_VAR` gleich 'hello' ist.
Ganzzahlvergleich
COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT ist größer als 10."; fi
Überprüft, ob der Wert der Variablen `COUNT` größer als 10 ist.
Logische UND-Operation
touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt existiert und ist nicht leer."; fi
rm file.txt
Überprüft, ob `file.txt` existiert und nicht leer ist.
Verwendung von `[` anstelle von `test`
if [ -f /etc/hosts ]; then echo "Die Datei /etc/hosts existiert."; fi
Der Befehl `test` kann durch `[` ersetzt werden. In diesem Fall muss er mit `]` geschlossen werden.
Tipps & Hinweise
Nützliche Tipps und zu beachtende Punkte bei der Verwendung des Befehls test.
Haupttipps
- Der Befehl `[` ist identisch mit dem Befehl `test` und muss am Ende mit `]` geschlossen werden. Da `[` und `]` als separate Argumente behandelt werden, ist ein Leerzeichen zwingend erforderlich.
- Der Befehl `[[` wird nur in Bash, Ksh und Zsh unterstützt und bietet erweiterte Funktionen (reguläre Ausdrücke, Leerzeichenbehandlung usw.). Innerhalb von `[[` ist es sicher, Variablen nicht in Anführungszeichen zu setzen.
- Bei der Verwendung von Variablen ist es immer sicher, sie in doppelte Anführungszeichen zu setzen (z. B. `test "$VAR" = "value"`). Dies verhindert Fehler, die auftreten können, wenn eine Variable leer ist oder Leerzeichen enthält.
- Verwenden Sie für Ganzzahlvergleiche `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le` und für Zeichenkettenvergleiche `=`, `!=`, `-z`, `-n`. Eine Verwechslung kann zu unerwarteten Ergebnissen führen.