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