Parameter im shell-script auswerten mit getopts

Es ist zwar durchaus möglich mit der "alt bewährten Methode" $1-$9 in shell scripts Kommandozeilen zu machen, allerdings ist das eher umständlich.

Mit der Funktion "getopts" hat jedoch zumindest die bash-shell ein sehr handliches Werzeug dafür eingebaut!

Dabei sieht die synatx so aus:

getopts Optionen Variable [Argumente]

Dabei werden alle Optionen die man Abfragen will mit einem ":" davor und dahinter hingeschrieben, z.B.:

getopts :a:

Möchte man schalter/flags verwenden, die keinen Wert haben, lässt man eingach den ":" hinter der Option weg:

getopts :a

Und ein praktisches Beispiel:

#!/bin/bash
# Demonstriert getopt
while getopts abc:D: opt
do
   case $opt in
       a) echo "Option a";;
       b) echo "Option b";;
       c) echo "Option c : ($OPTARG)";;
       D) echo "Option D : ($OPTARG)";;
   esac
done

Und so wird das dann aufgerufen:

user@host > ./test.sh -a
Option a
 
user@host > ./test.sh -b
Option b
 
user@host > ./test.sh -c
./agetopter: option requires an argument -- c
 
user@host > ./test.sh -c Hallo
Option c : (Hallo)

Quellen

getopt manpage
getopts – Kommandozeilenoptionen auswerten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert