case 参数值 in
value1)
statement ;;
value2)
statement ;;
....
*)
statement ;;
easc
例子
只接受start,stop,restart,status其中之一
case $1 in
'start')
echo "start service..." ;;
'stop')
echo "stop service..." ;;
'restart')
echo "restart service..." ;;
'status')
echo "service is running..." ;;
*)
echo "`basename $0` {start|restart|stop|status}" ;;
esac
例子2
#/bin/bash
#
declare -i DEBUG=0
declare -i SHOWNUM=0
declare -i SHOWUSERS=0
for I in `seq 1 $#`; do
if [ $# -gt 0 ]; then
case $1 in
-help|--help)
echo "Usage: `basename $0` -h|help -c|--count -v|-verbose"
exit 0 ;;
-v|--verbose)
let SHOWUSERS=1
shift ;;
-c|--count)
let SHOWNUM=1
shift ;;
*)
echo "Usage: `basename $0` -h|help -c|--count -v|-verbose"
exit 0 ;;
esac
fi
done
if [ $SHOWNUM -eq 1 ]; then
echo "Logged users:`who | wc -l` "
if [ $SHOWUSERS -eq 1 ]; then
echo "They are:"
who
fi
fi