ubuntuusers.de

Positionsunabhängige Parameterübergabe

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

tevterk

Anmeldungsdatum:
20. Januar 2008

Beiträge: 8

Hallo Leute,

für ein kleines Script möchte ich 2 Parameter übergeben, um sie anschließend zu verwenden. Ich habe bereits herausgefunden, dass das mit getopts ganz elegant zu lösen ist. Allerdings habe ich nun das Problem, dass 1. nur der erste Parameter ausgewertet wird und 2. die Parameter nicht in beliebiger Reihenfolge genannt werden können. Hier mein Script:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
while getopts ':p:q' Option
 do
  case $Option in
    p)   param1=$OPTARG;;
    q)   param2=$OPTARG;;
    *) echo "No valid argument!"; exit 1;;
  esac
done
echo $param1
echo $param2

Bei ausführen von "script -p parameter1 -q parameter2" wird nur parameter 1 ausgegeben. Bei "script -q bla -p foo" wird direkt nichts ausgegeben. Wie kann ich das Problem denn lösen? habe ich es vielleicht mit den cases versaut?

Gruß

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Servus,

andersrum: Erst kommt der Optionsbuchstabe, dann der Doppelpunkt. 😉

1
2
3
...
while getopts 'p:q:' Option
...

tevterk

(Themenstarter)

Anmeldungsdatum:
20. Januar 2008

Beiträge: 8

Vielen lieben Dank das wars auch schon.. ;D

Antworten |