Tag Cloud

Xandros (64) Ankündigung (60) Windows (51) Tipps+Tricks (46) Programme (44) Sonstiges (42) Bericht (32) Linux (31) Fotos (26) Hardware (26) Event (21) T91 (20) Urlaub 2009 (18) Urlaub 2008 (17) Skripte (7) Glossar (5) Neue Blogs (5) Netzwerk (4) Video (3) FAQ (1)

Donnerstag, 31. Juli 2008

Shell-Skripte erstellen 3. Teil

Booleans und Rückgabewerte
Für die Shell ist 0=wahr und alle anderen Werte stehen für falsch. Zusätzlich gibt jeder Befehl beim Beenden einen Integer-Wert (Ganzzahl) an die Shell zurück. Dieser Integer-Wert wird auch Rückgabewert, Return-Code oder Exit-Status genannt. Er kann über die Variable $? abgefragt werden.

/home/user>cat datei
Mein Name ist Hase und
weiß von nichts
/home/user>grep Hase datei
Mein Name ist Hase und <- Übereinstimmung gefunden

/home/user>echo $?
0 <- also wahr

/home/user>grep Igel
/home/user>echo $?
1 <- also falsch, da keine Übereinstimmung

test und [
Mit dem in die Shell eingebauten Befehl test können Boolsche Ausdrücke, die Zahlen und Strings enthalten können, ausgewertet werden.

/home/user>test 20 -lt 10 <- ist 20 kleiner als 10 (-lt=less-then=kleiner als)?

/home/user>echo $?
1 <- falsch

Einige Argumente für den Befehl test
Test für Dateien
-d NAME <- NAME ist ein Verzeichnis

-f NAME <- NAME ist eine Datei

-L NAME <- NAME ist ein symbolischer Link

-r NAME <- NAME existiert und ist lesbar

-w NAME <- NAME existiert und ist schreibbar

-x NAME <- NAME existiert und ist ausführbar

-s NAME <- NAME existiert und hat eine Größe von > 0

NAME1 -nt NAME2 <- die Datei NAME1 ist jünger als NAME2 NAME1

-ot NAME2 <- die Datei NAME1 ist älter als NAME2

Test für Strings
STRING1 == STRING2 <- die Strings STRING1 und STRING2 sind gleich STRING1

!= STRING2 <- die Strings STRING1 und STRING2 sind ungleich

-z STRING <- der String STRING hat die Länge

-n STRING <- der String STRING hat eine von Null verschiedene Länge

Numerische Tests (Integer)
X -eq Y <- X und Y sind gleich

X -ne Y <- X und Y sind ungleich

X -gt Y <- X ist größer als Y

X -ge Y <- X ist größer-gleich Y

X -lt Y <- X ist kleiner als Y

X -le Y <- X ist kleiner-gleich Y

test besitzt einen etwas ungewöhnlichen Alias, nämlich [, als Abkürzung mit Bedingungen und Schleifen. Bei Verwendung dieser Abkürzung muss als letztes Argument ] angegeben werden.

/home/user>[ 20 -lt 10 ]
/home/user>echo $?
1
Dieser Test ist mit dem obigen Beispiel identisch.
Nach [ und vor ] muss ein Leerzeichen stehen, da es sonst zu einem Fehler kommt.

wahr und falsch
bash hat die für Schleifen und Bedingungen eingebauten Befehle true und false. Durch diese Befehle wird der Exit-Status auf 0 bzw. 1 gesetzt.

Kommentare:

  1. Darauf habe ich gewartet...
    Wieviel Teile gibt es?

    AntwortenLöschen
  2. Es sind sechs Teile, wobei der 6. Teil "nur" aus einem komplexeren skript besteht.

    AntwortenLöschen

Alle Kommentare werden vor Veröffentlichung geprüft.