[英]bash - getopts in switch case
我正在尝试在switch case循环中使用getopts。 如果我仅使用getopts或仅使用开关盒,那么它是可行的,但是当我将两者结合使用时,不会触发getopts。
我搜索了很多,但我对所有如何组合它们都一无所获,问题是我缺少一些愚蠢的东西,所以给我...
这是代码本质。
#!/bin/bash
case $1 in
ver)
echo "vesion"
exit 0
;;
op)
while getopts ":a" opt; do
case $opt in
a)
echo "-a was triggered!" >&2
;;
\?)
echo "Invalid option: -$OPTARG" >&2
;;
esac
done
;;
esac
当我这样做
# bash -x test.sh op -a
我得到
+ case $1 in
+ getopts :a opt
(没有调试我什么也没得到)
我想将这两个结合在一起的是什么
谢谢 :)
您应该在op)
选择的开头添加一个shift
指令,然后再调用getopts
来吃掉op
参数本身。 否则, getopts
将分析的第一个参数是op
,它将无声停止(选项结束)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.