gpt4 book ai didi

bash - 如果没有提供选项,让 getopts 显示帮助

转载 作者:行者123 更新时间:2023-11-29 08:56:13 27 4
gpt4 key购买 nike

我解析了这里发布的一些类似问题,但它们不适合我。

我有这个很棒的 bash 脚本,它可以执行一些很酷的功能,这里是代码的相关部分:

while getopts ":hhelpf:d:c:" ARGS;
do
case $ARGS in
h|help )
help_message >&2
exit 1
;;
f )
F_FLAG=1
LISTEXPORT=$OPTARG
;;
d )
D_FLAG=1
OUTPUT=$OPTARG
;;
c )
CLUSTER=$OPTARG
;;
\? )
echo ""
echo "Unimplemented option: -$OPTARG" >&2
echo ""
exit 1
;;
: )
echo ""
echo "Option -$OPTARG needs an argument." >&2
echo ""
exit 1
;;
* )
help_message >&2
exit 1
;;
esac
done

现在,如果触发,我的所有选项都可以正常工作。我想要的是 getopts 在没有选项被触发时吐出 help_message 函数,假设脚本只是 ./scriptname.sh 启动而没有参数。

我在这里看到了一些实现IF 循环和函数 的方法,但是,由于我刚刚开始使用 bash,而且我已经在这个脚本上有一些 IF 循环,我想知道是否有更简单(和漂亮)的方法来做到这一点。

最佳答案

如果您只想检测不带任何选项调用的脚本,那么只需检查脚本中 $# 的值,并在它为零时退出并显示一条消息。

如果你想捕获没有传递选项参数(但非选项参数)仍然传递的情况,那么你应该能够在 getopts 之后检查 OPTIND 的值 为1(表示第一个参数为非选项参数)时循环退出。

关于bash - 如果没有提供选项,让 getopts 显示帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26592217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com