Test-Kommando: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „Der eingebaute Befehl ''test'' gibt sein Ergebnis als Returncode zurück. Dieser Befehl wird daher oft in Kontrollstrukturen der bash zur Verzweigung verwende…“) |
|||
| Zeile 85: | Zeile 85: | ||
*! test -r /etc/shadow && echo so ist es richtig | *! test -r /etc/shadow && echo so ist es richtig | ||
so ist es richtig | so ist es richtig | ||
| + | |||
| + | = Alternative Schreibweise = | ||
| + | |||
| + | * '''test''' kann auch mit eckigen Klammern aufgerufen werden | ||
| + | * '''[ 2 -eq 2 ]''' ist äquivalent zu '''test 1 -eq 1''' | ||
Version vom 2. Juni 2023, 10:17 Uhr
Der eingebaute Befehl test gibt sein Ergebnis als Returncode zurück. Dieser Befehl wird daher oft in Kontrollstrukturen der bash zur Verzweigung verwendet.
Es existieren 2 Schreibweisen:
test bedingung [ bedingung ]
Ist das von bedingung zurückgelieferte Ergebnis wahr, wird der Returncode 0 übergeben, sonst ungleich 0. bedingung kann ein numerischer Vergleich, ein Stringvergleich, eine Prüfung von Objekteigenschaften oder eine beliebige Kombination der vorhergehenden sein.
Numerischer Vergleich
test zahl1 -op zahl2 (op: eq, ne, lt, gt, ge, le)
- ZAHL=4
- test $ZAHL -eq "4" && echo stimmt
| -eq | gleich |
| -ne | ungleich |
| -lt | kleiner |
| -gt | größer |
| -ge | größer oder gleich |
| -le | kleiner oder gleich |
Stringvergleich
test string1 = string2 test string1 != string2 test –n string oder test string (Länge von string größer null) test –z string (Länge von string gleich null)
- HOBBIT=frodo
- test $HOBBIT = "bilbo" && echo frodo
- test $HOBBIT = "bilbo" && echo bilbo
- HOBBIT=bilbo
- test $HOBBIT = "bilbo" && echo bilbo
bilbo
Objekteigenschaften
test -op objekt
| d | Directory |
| f | Datei |
| s | nicht leere Datei |
| r | leserecht auf das Objekt |
| w | schreibrecht auf das Objekt |
| x | ausführungsrecht auf das Objekt |
- test -f /etc/shadow && echo sicheres system
sicheres system
- test -r /etc/shadow || echo so ist es richtig
so ist es richtig
Prioritäten bei logischen Verknüpfungen
| runde Klammer | Negation | AND | OR |
| () | ! | -a | -o |
test \( -r dat -o -w dat \) test ! \( -r dat -o -w dat \) test $name;echo $?
- ! test -r /etc/shadow && echo so ist es richtig
so ist es richtig
Alternative Schreibweise
- test kann auch mit eckigen Klammern aufgerufen werden
- [ 2 -eq 2 ] ist äquivalent zu test 1 -eq 1