Linux Bash Parameter
Hallo Linux User,
ich baue gerade ein kl. Script, welches via case auf verschiedene Parameter reagieren soll.
Jetzt möchte ich, daß wenn ein nicht definierter Parameter eingeben wird, das Script genau so reagiert als hätte ich keinen Parameter oder -h / -H gesetzt.
Die einzige Lösung die mir einfällt, ist beim Start des Scripts via if abzufragen, ob einer der definierten Parameter gesetzt ist und wenn dies nicht der Fall ist, diesen auf -h zu setzen.
Aber gibt es da nicht eine elegantere Lösung direkt via case Anweisung?
Viele Grüße
Poshock
ich baue gerade ein kl. Script, welches via case auf verschiedene Parameter reagieren soll.
Jetzt möchte ich, daß wenn ein nicht definierter Parameter eingeben wird, das Script genau so reagiert als hätte ich keinen Parameter oder -h / -H gesetzt.
Die einzige Lösung die mir einfällt, ist beim Start des Scripts via if abzufragen, ob einer der definierten Parameter gesetzt ist und wenn dies nicht der Fall ist, diesen auf -h zu setzen.
Aber gibt es da nicht eine elegantere Lösung direkt via case Anweisung?
case "$1" in
# Parameter $1 ist leer, -h oder -H
""|-h|-H)
echo "#M: Dies ist die Hilfe zu $0."
.......
exit
;;
# Parameter $1 ist -t oder -T
-t|-T)
echo "#M: Dies ist der Testlauf von $0."
....
;;
# Parameter $1 ist -f oder -F
-f|-F)
echo "#M: $0 wird ausgefuehrt!."
..........
;;
esac
Viele Grüße
Poshock
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 920343936
Url: https://administrator.de/contentid/920343936
Ausgedruckt am: 22.11.2024 um 05:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
das geht recht einfach, du suchst das *) , weiters solltest du deine Sachen alle in Funktionen packen, dann kannst du sie einfach aufrufen.
https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_007. ...
das geht recht einfach, du suchst das *) , weiters solltest du deine Sachen alle in Funktionen packen, dann kannst du sie einfach aufrufen.
# Demonstriert die case-Anweisung zum Auswerten von Optionen
# acase7
# Als erstes Argument angeben
case "$1" in
-[tT]|-test) echo "Option \"test\" aufgerufen" ;;
-[hH]|-help|-hilfe) echo "Option \"hilfe\" aufgerufen" ;;
*) echo "($1) Unbekannte Option aufgerufen!"
esac
https://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_007. ...
Hi,
schau dir mal dazu noch das hier https://www.baeldung.com/linux/use-command-line-arguments-in-bash-script bzw. die getopts Funktion an. Damit ist es dann auch egal, in welcher Reihenfolge die Parameter ans Skript übergeben werden bzw brauchst nicht endlos $1 $2 $3 usw prüfen.
Grüße
bloody
schau dir mal dazu noch das hier https://www.baeldung.com/linux/use-command-line-arguments-in-bash-script bzw. die getopts Funktion an. Damit ist es dann auch egal, in welcher Reihenfolge die Parameter ans Skript übergeben werden bzw brauchst nicht endlos $1 $2 $3 usw prüfen.
Grüße
bloody