bash 输出无效选项

发布于 2024-11-01 13:55:22 字数 426 浏览 1 评论 0原文

假设我有以下脚本来处理选项:

while getopts dsf opts 2>/dev/null
do
    case $opts in
    d) echo "d";;
    s) echo "s";;
    \?) echo "Error: An invalid option [?] was entered.";
        exit 1;;
    esac
done

我想用我输入的无效开关替换 [?]。 那么,如果我输入

./myscript -z //output: Error: An invalid option [-z] was entered.

How will catch that invalid switch?使用我的 $opts 变量会显示一个问号。

Say I have the following script to handle options:

while getopts dsf opts 2>/dev/null
do
    case $opts in
    d) echo "d";;
    s) echo "s";;
    \?) echo "Error: An invalid option [?] was entered.";
        exit 1;;
    esac
done

I want to replace the [?] with the invalid switch I entered.
So if I enter

./myscript -z //output: Error: An invalid option [-z] was entered.

How would I catch that invalid switch? Using my $opts variable displays a question mark.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

深空失忆 2024-11-08 13:55:23

来自 help getopts

getopts 以两种方式之一报告错误。如果第一个字符
OPTSTRING 是冒号,getopts 使用静默错误报告。在
在此模式下,不会打印任何错误消息。如果无效选项是
可见,getopts 将找到的选项字符放入 OPTARG 中。

From help getopts:

getopts reports errors in one of two ways.  If the first character
of OPTSTRING is a colon, getopts uses silent error reporting.  In
this mode, no error messages are printed.  If an invalid option is
seen, getopts places the option character found into OPTARG.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文