#
-
o表示短选项,两个冒号表示该选项有一个可选参数,可选参数必须紧贴选项
#如 - carg 而不能是 - c arg
# -- long表示长选项
# - n:出错时的信息
# -- :举一个例子比较好理解:
#我们要创建一个名字为 " -f " 的目录你会怎么办?
# mkdir - f #不成功,因为 - f会被mkdir当作选项来解析,这时就可以使用
使用:
结果为:
结果:
#如 - carg 而不能是 - c arg
# -- long表示长选项
# - n:出错时的信息
# -- :举一个例子比较好理解:
#我们要创建一个名字为 " -f " 的目录你会怎么办?
# mkdir - f #不成功,因为 - f会被mkdir当作选项来解析,这时就可以使用
# mkdir -- -f 这样-f就不会被作为选项。
举例如下:
#! /bin/sh
short_options="ab:c::"
long_options="all,bit:,clong::"
opts=`getopt -o $short_options -l $long_options -n "help" -- "$@"` #注意是反引号
eval set -- "$opts"
while [ $# -gt 0 ]
do
case "$1" in
-a | --all)
echo "$1 no argument"
;;
-b | --bit)
echo "$1 $2"
shift
;;
-c | --clong)
case "$2" in
"") echo "Option c ,no argument"
shift
;;
*) echo "Option C,argument $2 "
shift
;;
esac ;;
esac
shift
done
使用:
./getopt.sh -b 321 -a -c134
结果为:
-b 321
-a no argument
Option C,argument 134
./getopt.sh -b 321 -a --clong=134
结果:
-b 321
-a no argument
Option C,argument 134