PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bash benamte Parameter



Celindir
18.11.02, 09:20
Hallo zusammen,

Hier eine kleine Fingerübung für Euch

Ich habe folgendes vor:

Ein Bash script soll mit benamten Parametern aufgerufen werden.

z.B. script -p=/temp/ -c=-1 -o=output.out

Im script sollen dann die Werte der einzelnen Parameter extrahiert und genutzt werden.

path=/temp/
chapter=-1
output=output.out

Ich denke mir, das müsste grundsätzlich möglich sein, indem man den ganzen String mit $* ausgibt und daraus dann z.B. mit awk die gesuchte Zeichenkette extrahiert.

Hintergrund ist, dass es somit möglich wäre immer nur die Parameter mit an das Script zu übergeben, die gerade erforderlich sind, ohne die interne Nummerierung der Parameter $1-$n durcheinander zu bringen.

Bin mal gespannt, wie schnell eine Lösung da ist

Vielen Dank fürs Kopfzerbrechen

melody lee
18.11.02, 10:21
indem man den ganzen String mit $* ausgibt und daraus dann z.B. mit awk die gesuchte Zeichenkette extrahiert.
Das kannst Du mit "getopts" einfacher haben.



while getopts 123:4 OPT; do
echo "Schalter war $OPT Schalter_Argument war $OPTARG"
case $OPT in
1)
echo $OPT
;;

2)
echo $OPT
;;

3)
echo $OPT mit $OPTARG
;;
esac
done

1,2 und 3 sind hier die Optionen, der ":" ist ein "Trenner", der angibt, dass hinter dem Schlter "-3" ein Argument folgen muss. Also zb. "skript -1" oder "skript -3 sagwas".
Weitere Suchbegriffe für die Bash man/info-page wären OPTIND, OPTARG und OPTERR

Celindir
18.11.02, 12:18
Vielen Dank,

hört sich gut an.

Wer sich auskennt hat es doch häufig einfacher:)

Ich werds mal ausprobieren.

Hätte mich auch gewundert, wenn es dafür keine Möglichkeit gegeben hätte.

Gruß