mirror of https://github.com/tLDP/LDP
46 lines
903 B
Bash
46 lines
903 B
Bash
#!/bin/bash
|
|
# Using getopt
|
|
|
|
# Try the following when invoking this script:
|
|
# sh ex33a.sh -a
|
|
# sh ex33a.sh -abc
|
|
# sh ex33a.sh -a -b -c
|
|
# sh ex33a.sh -d
|
|
# sh ex33a.sh -dXYZ
|
|
# sh ex33a.sh -d XYZ
|
|
# sh ex33a.sh -abcd
|
|
# sh ex33a.sh -abcdZ
|
|
# sh ex33a.sh -z
|
|
# sh ex33a.sh a
|
|
# Explain the results of each of the above.
|
|
|
|
E_OPTERR=65
|
|
|
|
if [ "$#" -eq 0 ]
|
|
then # Script needs at least one command-line argument.
|
|
echo "Usage $0 -[options a,b,c]"
|
|
exit $E_OPTERR
|
|
fi
|
|
|
|
set -- `getopt "abcd:" "$@"`
|
|
# Sets positional parameters to command-line arguments.
|
|
# What happens if you use "$*" instead of "$@"?
|
|
|
|
while [ ! -z "$1" ]
|
|
do
|
|
case "$1" in
|
|
-a) echo "Option \"a\"";;
|
|
-b) echo "Option \"b\"";;
|
|
-c) echo "Option \"c\"";;
|
|
-d) echo "Option \"d\" $2";;
|
|
*) break;;
|
|
esac
|
|
|
|
shift
|
|
done
|
|
|
|
# It is usually better to use the 'getopts' builtin in a script.
|
|
# See "ex33.sh."
|
|
|
|
exit 0
|