Forums Neueste Beiträge
 

Shellprogrammierung - Parameterabarbeitung

22/12/2011 - 18:29 von Thomas Barth | Report spam
Hallo,
was stimmt hier bei der Parameterabarbeitung nicht? Sobald ich mein
Skript mit dem Parameter "-n dataname" aufrufe, befindet sich while in
einer Endlosschleife, die nicht mehr verlassen wird.


set -- $(getopt "brfnh:" "$@") || {
echo "Anwendung: $(basename $0) -b|-r [-f] [-h hour] [-n dataname]" 1>&2
exit 1
}

while :
do
case "$1" in
-b) backup=1
;;

-r) restore=1
;;

-f) fullbackup=1
;;

-h) shift;
hour="$1"
;;

-n) shift;
dataname="$1"
;;

;;
esac
shift

echo "hier schleife"
done
shift

Stimmt hier etwas mit shift nicht?

Gruß, Thomas B
 

Lesen sie die antworten

#1 g.fink
22/12/2011 - 18:58 | Warnen spam
In article ,
Thomas Barth writes:
Hallo,
was stimmt hier bei der Parameterabarbeitung nicht? Sobald ich mein



der optionstring ist das Problem:
tmp.sh -f -n text
wird durch getopt zu $1="-f" $2="-n" $3="--" $4="text"

durch den shift bei -n wird das -- an dataname übergeben und fehlt dann um
die schleife zu beenden.

Der Fehler ist dass nach dem n im Optionstring der Doppelpunkt fehlt.

MFG Gernot

Ähnliche fragen