ich brauche mal Hilfe bei Folgendem:
Code: Alles auswählen
#!/bin/bash
[...]
while getopts ":u:" var_cmdopt
do
case $var_cmdopt in
u)
if [ -z $OPTARG ]
then
fct_wrgopt "Username missing." 5
else
if [ -z `cut -d ':' -f 1 /etc/passwd | grep $OPTARG` ]
then
fct_wrgopt "User <"$OPTARG"> does NOT exist." 6
else
fct_setperm $OPTARG
fi
fi
;;
*)
fct_wrgopt "Wrong option." 1
;;
esac
done
Code: Alles auswählen
# ./script.sh -u root
Code: Alles auswählen
# ./script.sh -u dummy-user
Code: Alles auswählen
# ./script.sh -u
Wo habe ich da einen Denkfehler bzw. wieso schlaegt die erste IF-Abfrage (-z $OPTARG) fehl?
PS: Ob ich bei "getopts" den ersten Doppelpunkt setze oder nicht, aendert nichts. Er ist aber notwendig, da "getopts" grundsaetzlich schweigen soll.
Besten Dank im voraus.
- Wraith