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)

Sonntag, 27. Juli 2008

Shell-Skripte erstellen 2. Teil

Beispiel:
Falsch:
#!/usr/bin/bash
cp$QUELLE $ZIEL <- Hier fehlt ein Leerzeichen nach cp (copy)

Richtig
#!/usr/bin/bash
cp $QUELLE $ZIEL

Falsch
prin <- Zeilenumbruch mitten im Befehl
tf "Hello World"

Richtig
printf "Hello World"

Variablen
Variablen werden durch Zuweisungen definiert:
/home/user>ALTER=20
Um auf den Wert der Variablen zuzugreifen setzt man ein $ (Dollarzeichen) vor den Variablennamen:
/home/user>echo $ALTER
20

Einige Variablen sind bereits vordefiniert:
DISPLAY <- der Name des X Window-Displays
HOME <- der Name des Home-Verzeichnisses
LOGNAME <- Login-Name
MAIL <- der Pfad zur Mailbox für eingehende Mails
OLDPWD <- das vorige Arbeitsverzeichnis der Shell
PATH <- Suchpfad der Shell. Verzeichnisse sind durch Doppelpunkte getrennt
PWD <- das aktuelle Arbeitsverzeichnis der Shell
SHELL <- der Pfad de Shell (z.B. /bin/bash)
TERM <- der Typ des Terminals
USER <- Login-Name

/home/user>printenv zeigt alle Variablen der Shell an.

Wenn man sich in einem Skript auf den Wert einer Variablen bezieht, sollte man den Variablennamen immer in doppelte Anführungszeichen setzen, um Fehler zu vermeiden.

/home/user>NAME="Max Mustermann" <- Leerstelle im Namen
/home/user>ls $NAME <- Versuch das Verzeichnis Max Mustermann aufzulisten
ls: Max: No such file or directory <- Ups
ls: Mustermann: No such file or directory <- Fehlermeldung
/home/user>ls "$NAME" <- korrekt
Max Mustermann

Wenn ein Variablenname neben einem anderen String benutzt wird, muss der Variablenname mit geschweiften Klammern umschlossen werden, um unerwartete Ergebnisse zu vermeiden.

/home/user>EIGENSCHAFT="toll"
/home/user>echo "Windows ist $EIGENSCHAFT und Xandros ist $EIGENSCHAFTer"
Windows ist toll und Xandros <- Es gibt keine Variable EIGENSCHAFTer
/home/user>echo "Windows ist $EIGENSCHAFT und Xandros ist ${EIGENSCHAFT}er"
Windows ist toll und Xandros ist toller <- Jetzt stimmt die Ausgabe

Ein- und Ausgabe
Eingaben werden mit dem Befehl read realisiert. read liest eine Zeile von der Standardeingabe (Tastatur) und speichert sie in einer Variablen.

/home/user>read OS
Xandros
echo "Ich verwende $OS"
Ich verwende Xandros

Ausgaben können mit den Befehlen echo und printf realisiert werden.

/home/user>echo "Hallo Welt"
Hallo Welt
/home/user>printf "Ich bin der Größte"
Ich bin der Größte

1 Kommentar:

Alle Kommentare werden vor Veröffentlichung geprüft.