当前位置: 技术问答>linux和unix
急,Linux shell脚本问题请教,关于getopts
来源: 互联网 发布时间:2016-05-04
本文导语: 正在学习Shell脚本编程,写了个简单的脚本测试getopts 代码如下: # test_getopts.sh while getopts "a:f" OPTION do case $OPTION in a) echo "OPTION=a OPTARG=$OPTARG" ;; ?) echo "Need OPTARG" ...
正在学习Shell脚本编程,写了个简单的脚本测试getopts
代码如下:
# test_getopts.sh
while getopts "a:f" OPTION
do
case $OPTION in
a) echo "OPTION=a OPTARG=$OPTARG"
;;
?) echo "Need OPTARG"
exit 1
;;
f) echo "OPTION=f"
;;
esac
done
当用户输入test_getopts.sh -a -f,程序并没有报"Need OPTARG"的错误,而是直接将-f赋给了OPTARG。
那么我应该如何做,才能使程序正确判断-a后面跟着的是参数还是参数值?
代码如下:
# test_getopts.sh
while getopts "a:f" OPTION
do
case $OPTION in
a) echo "OPTION=a OPTARG=$OPTARG"
;;
?) echo "Need OPTARG"
exit 1
;;
f) echo "OPTION=f"
;;
esac
done
当用户输入test_getopts.sh -a -f,程序并没有报"Need OPTARG"的错误,而是直接将-f赋给了OPTARG。
那么我应该如何做,才能使程序正确判断-a后面跟着的是参数还是参数值?
|
这个只有自己判断
因为按照规则,-a 后跟 -f 作为参数值是合法的
因为按照规则,-a 后跟 -f 作为参数值是合法的