【发布时间】:2019-10-16 12:19:06
【问题描述】:
我想使用 getopts 但默认情况下不起作用。
我试过的代码是:
while getopts "sdp" arg; do
case "$arg" in
s)
echo "1"
;;
p)
echo "2"
;;
d)
echo "3"
;;
*)
echo "default"
;;
esac
当我运行进程时:./myTask
我没有收到任何输出
【问题讨论】:
-
那么问题是什么。你想要什么?
-
默认情况下不起作用。
-
getopts返回零状态,while循环从未执行,因此“默认情况”从未执行。 -
这是
case语句的默认值,但它意味着getopts上下文中的特定内容:您定义了一个选项但没有处理它的子句。请在我的回答here 中查看getopts函数的参考实现。
标签: linux bash switch-statement getopts