PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : einfache Frage zu Bash



elrond
10-07-2002, 11:31
Hallo allerseits,

ich habe gerade ein Bash-Script gebschrieben, und verwende dabei ein Stück Code aus dem Internet. Es funxt ganz tadellos, aber ich verstehe eine Sache nicht:

while getopts u:p:s:m:q:z: Optionen; do
case $Optionen in
u) username=$OPTARG;;
p) passwd=$OPTARG;;
s) share=$OPTARG;;
m) mountpoint=$OPTARG;;
q) quelle=$OPTARG;;
z) ziel=$OPTARG;;
*) showopt
;;
esac
done

Hinter $OPTARG stehen zwei Semikola, war so funxt so...aber warum? Was machen diese Dinger *verwundert*

thx schonmal im Vorraus für Euer Kopfzerbrechen. cu

anda_skoa
10-07-2002, 12:45
Das ist so in der Bashsyntax definiert.

;; schließt das case statement ab.

Siehe
#> man bash
/case

Ciao,
_

xare
10-07-2002, 12:52
Der "leere Befehl" soll wohl das break() (von C / Java) ersetzen?
Also könnte ich auch nur einen Strichpunkt machen und weitere Befehle hinschreiben?

Sorry, hätte eigentlich auch in die man bash schauen können:D

MfG Xare

anda_skoa
10-07-2002, 13:02
*) ist der Default case, * matched immer alles :)
Ist schließlich die Aufgabe des * Wildcards

Du kannst wie immer in der Bash einen neuen Befehl einfach in eine neue Zeile schreiben.

Das ;; ist praktisch das Äquivalent zum C break

Ciao,
_

elrond
10-07-2002, 14:10
boah, so viele , so schlau und so schnell :D

danke euch allen, ...und wieder bin ich etwas schlauer.

lankin
11-07-2002, 13:02
hai auch,

eines sollte man vielleicht noch anmerken:
zwischen diesen beiden ";;" am ende darf(!)
kein weiterer befehl stehen.

darin steht kein "leerer befehle", sondern ist
einfach die syntax fuer den abschluss eines
case-statments

gruss
lankin