PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell: case-funktion, prüfen von verschiedenen Parameter



hmikux
25-11-2005, 20:09
Hallo,

ich überlege gerade, wie ich am einfachsten folgendes Problem lösen kann:

case "$1" in
"-v") echo 'vdr.sh, version 0.1, created by Hrvoje Mikulec, last changes: 20.11.2005' && exit 0 ;;
"-V") echo 'vdr.sh, version 0.1, created by Hrvoje Mikulec, last changes: 20.11.2005' && exit 0 ;;
"--version") echo 'vdr.sh, version 0.1, created by Hrvoje Mikulec, last changes: 20.11.2005' && exit 0 ;;
"--Version") echo 'vdr.sh, version 0.1, created by Hrvoje Mikulec, last changes: 20.11.2005' && exit 0 ;;
esac

Das ganze müßte man doch auch vereinfachen können, indem ich dann eben nur einmal echo nach der Prüfung der übergebenen Option schreiben brauch...

oder???

colo
25-11-2005, 20:17
1.) `man bash` -> SHELL BUILTIN COMMANDS -> getopts

Sollte dir wohl in zukunft etwas unter die Arme greifen koennen :)

2.) Du kannst an "case" auch mehrere moegliche Ausdruecke auf einmal verfuettern, naemlich so:


case ${1} in
"-v" | "-V" | "--version" | "--Version") echo "...";;
esac;

hmikux
25-11-2005, 20:21
danke für die rasche Antwort!!

1.) `man bash` -> SHELL BUILTIN COMMANDS -> getopts

...werde ich beim nächsten mal zuerst befragen :-)

Joghurt
01-12-2005, 14:32
Nicht vergessen, auch "#!/bin/bash" zu schreiben, wenn du bashspezifische Sachen nutzt.