Startseite > Umgebung & Hilfsprogramme > test

test: Bedingungsprüfung

Der Befehl test wird in Shell-Skripten zur Konstruktion von Bedingungsanweisungen verwendet. Er wertet verschiedene Bedingungsausdrücke aus, wie z. B. die Überprüfung von Dateitypen oder den Vergleich von Zeichenketten- und Zahlenwerten, und gibt entweder wahr (0) oder falsch (1) zurück. Dieser Rückgabewert wird in Kontrollstrukturen wie der `if`-Anweisung verwendet.

Ü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.

Gleiche Kategorie Befehle