Parameter eines Bash Scriptes

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Parameter eines Bash Scriptes

Beitrag von Erzlord Caron » 03.03.2005 22:58:52

Hi, gibt es eine intelligentere Möglichkeit auf die Parameter zuzugreifen, als $1 ... ?
Also z.B. auf eine Option zuzugreifen, egal in welcher Reihenfolge sie angegeben wurde?
Beispiel
./bashscript -o test -v Blah
{gib den Wert des o-Parameters aus}

In PERL geht sowas ja...

gms
Beiträge: 7798
Registriert: 26.11.2004 20:08:38
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von gms » 03.03.2005 23:51:59

in der Bash auch ...

Es gibt das Bash-Kommando "getopts" und das Programm "getopt"
Hier ein Beispiel mit "getopts":

Code: Alles auswählen

root:~/tmp# cat x.sh
#!/bin/bash

usage="`basename $0` -o <val> -v <val> <else>"
while getopts ":o:v:" Option; do
  case $Option in
    o ) OPT_O=$OPTARG;;
    v ) OPT_V=$OPTARG;;
    \? )
      echo $usage
      exit 1;;
  esac
done
shift $(($OPTIND - 1))

echo opt_o=$OPT_O
echo opt_v=$OPT_V
echo else=$*


root:~/tmp# ./x.sh -o test -v Blah xxx
opt_o=test
opt_v=Blah
else=xxx

Erzlord Caron
Beiträge: 444
Registriert: 17.07.2003 15:55:41

Beitrag von Erzlord Caron » 04.03.2005 00:02:44

super, danke

Antworten