#-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
本文介绍了一个使用getopt进行命令行参数解析的shell脚本示例。通过定义短选项和长选项,结合具体案例展示了如何处理不同类型的命令行输入。
1590

被折叠的 条评论
为什么被折叠?



