Die Formulierung von Bedingungen ist in der Bash nicht durch
einfache Ausdrücke zu realisieren, da zum einen viele Sonderzeichen
(<,>) bereits reserviert sind und zum anderen alle Aktionen über ein
einheitliches Kommandokonzept durchgeführt werden sollen. Deswegen
exisitiert für solche Zwecke das build-in Kommando
test
.
test
liefert 0
,
falls die Bedingung erfüllt ist, und eine 1
sonst.
Die Schreibweise in eckigen Klammern ist eine Ersatzdarstellung.
user@sonne> test "$i"
|
gibt 0 zurück, wenn die Variable i
belegt ist, andernfalls eine
1
.
user@sonne> test -e $i
|
testet, ob eine Datei mit dem Namen in i
existiert.
Für Dateien existieren folgende Tests:
Option | Bedeutung |
-b/-c | Test auf Gerätedatei (Block/Character) |
-d | Test auf Verzeichnis |
-e | Existenz der Datei |
-f | Test auf normale Datei |
-p | Test auf Pipe |
-r/-w/-x | Test auf Lese-/Schreib-/Ausführungsrecht |
-s | Test, ob Datei nicht leer ist |
Mehrere Tests können kombiniert werden:
Option | Bedeutung |
! | Negation. |
-a | Logisches UND zweier Tests |
-o | Logisches ODER zweier Tests |
Um sich mit dem Kommando vertraut zu machen, kann man dieses gleich auf der Shell ausprobieren:
user@sonne> var=5
|