bash - 开关盒中的getopts
问题描述:
我试图在开关盒循环中使用getopts。 如果我只使用getopts或只有开关的情况下工作,但是当我结合这两个getopts dos不触发。bash - 开关盒中的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
,它会静静地停止(选项结束)。
谢谢。工作完美 – yntnm