getopt in bash
How to properly read command line arguments for a bash script and do it well even without getopt:
while :; do
case "$1" in
-h|--help)
echo "This is helping"
exit 0
;;
-s|--simple-flag)
echo "You passed a flag"
shift
;;
-p|--pass-option)
shift
echo "You set option to $1"
option="$1"
shift
;;
-*)
echo "That's a weird option"
exit 1
*)
# No more args to read
break
;;
esac
done
I think the syntax is much cleaner than that of getopt's as well -- that is, if you've even got a bash version supporting getopt.
Edit: Thanks Willem D'Haese for pointing out the missing esac
.