test - Testet die Eingaben auf Konditionen

Beschreibung

test [var1] [flags] [var2]

Parameter

Strings

  • -n nicht leer?
  • -z leer?
  • = gleich?

Zahlen

  • -eq gleich?
  • -ne nicht gleich?
  • -lt, -gt, … kleiner, größer, …

Weitere

  • ! nicht?
  • -d Verzeichnis existiert?
  • Nicht auswendig lernen, nicht Prüfungsrelevant

Wichtig/Umdenken: Rükgabe von 0, falls es wahr ist (0 - Kein Fehler)

Beispiele

Anwendung:

if $(test $1 -gt $2); then
	echo $1 is greater than $2
 
# Die eckigen Klammern rufen auch test auf
elif [ $1 -lt $2 ]; then  # Äquivalent: elif $(test $1 -lt $2);
	echo $1 is smaller than $2
else
	echo $1 and $2 are equal
fi

Beispiele zu Flags:

  • -n foo - foo ist nicht leer
  • -z foo - foo ist leer
  • =, -eq, -lt, -gt, -le, -ge, -ne
  • ! foo - foo ist falsch
  • -e foo - die Datei foo existiert
  • -d foo - das Verzeichnis foo existiert
  • -r foo - die Datei foo hat Leseberechtigung