test […]

Der Befehl test dient zum Überprüfen von Dateitypen bzw. Vorhandensein von Dateien und zum Vergleichen von Werten. Der Aufruf erfolgt mit test Vergleich wobei Vergleich die Prüfung bzw. den Vergleich enthält. Als Ergebnis gibt test 0 für Wahr (true) und 1 für Falsch (false) zurück. Der Rückgabewert wird mit Hilfe der Shelleigenen Variablen $? ermittelt. Es gibt Vergleiche für Dateien, Zeichenketten und Integer-Zahlen.

Anstatt des Befehls test kann die Bedingung auch in eckige Klammern gesetzt werden. Hierbei ist darauf zu achten, dass zwischen den Klammern und dem Vergleich jeweils ein ein Leerzeichen steht:  [ Vergleich ]

Dateitests:

 -b Datei  Die Datei existiert und ist ein blockorientiertes Gerät
 -c Datei  Die Datei existiert und ist ein zeichenorientiertes Gerät
 -d Datei  Die Datei existiert und ist ein Verzeichnis
 -f Datei  Die Datei existiert und ist eine reguläre Datei
 -g Datei  Die Datei existiert und das Gruppen-ID-Bit ist gesetzt
 -h Datei  Die Datei existiert und ist ein symbolischer Link
 -k Datei  Die Datei existiert und das Sticky-Bit ist gesetzt
 -p Datei  Die Datei existiert und ist eine Named Pipe
 -r Datei  Die Datei existiert und ist lesbar
 -s Datei  Die Datei existiert und ist nicht leer
 -t [n]  Der offene Dateideskriptor n gehört zu einem Terminal; Vorgabe für n ist 1.
 -u Datei  Die Datei existiert und das Setuid-Bit ist gesetzt
 -w  Datei Die Datei existiert und ist beschreibbar
 -x  Datei Die Datei existiert und ist ausführbar

Zeichenfolgen:

 -n s1  Die Länge der Zeichenfolge s1 ist ungleich Null
 -z s1  Die Länge der Zeichenfolge s1 ist gleich Null
 s1 == s2  Die Zeichenfolgen s1 und s2 sind identisch
 s1 != s2  Die Zeichenfolgen s1 und s2 sind nicht identisch
 Zeichenfolge  Die Zeichenfolge ist nicht Null

Ganzzahlvergleiche:

 n1 -eq n2  n1 ist gleich n2
 n1 -ge n2  n1 ist größer oder gleich n2
 n1 -gt n2  n1 ist größer als n2
 n1 -le n2  n1 ist kleiner oder gleich n2
 n1 -lt n2  n1 ist kleiner n2
 n1 -ne n2  n1 ist ungleich n2

Kombinierte Formen:

(Bedingung) Wahr, wenn die Bedingung zutrifft (wird für die Gruppierung verwendet). Den Klammern muss ein \ vorangestellt werden.
! Bedingung i Wahr, wenn die Bedingung nicht zutrifft (NOT).
Bedingung1 -a Bedingung2 Wahr, wenn beide Bedingungen zutreffen (AND).
Bedingung1 -o Bedingung2 Wahr, wenn eine der beiden Bedingungen zutrifft (OR).

Einzelne Befehle in Abhängigkeit von Bedingungen:

 && wird ausgeführt, wenn Bedingung wahr ist
 || wird ausgeführt, wenn Bedingung nicht wahr ist

Beispiel: [ Bedingung ] && echo Bedingung ist wahr || echo Beindung ist nicht wahr