gpt4 book ai didi

c - Getopt:与多个 optargs 一起使用的标志

转载 作者:行者123 更新时间:2023-11-30 14:44:24 24 4
gpt4 key购买 nike

如何为一个标志使用两个参数?

例如:

./xampl -c foo bar

将返回:

foobar

我查看了 gnu cat 和 freebsd ls 的源代码,但找不到任何线索

我是一名 C 新手,也是一名称职的 bash 脚本编写者。

最佳答案

标准的 getopt 东西无法做到这一点,它允许向选项添加单参数(使用 :),例如 -cfoo (选项参数的一部分)或 -c foo (在下一个参数中)。如果您使用 :: ,这也可以是可选的,但我相信它必须是选项参数本身的扩展,而不是单独的参数。

它无法在选项参数之后采用多个参数并将它们组合成一个选项。您可以用引号将它们括起来,以强制其成为单个参数,例如:

-c "foo bar"

但这不会删除空格。当然,没有什么可以阻止您直接指定您想要的内容,并稍作修改:

-c foobar

换句话说,我不清楚为什么您实际上需要将它们分开,特别是因为无论如何您都要将它们组合起来。

毫无疑问,您可以修改 getopt 来执行此操作,例如允许诸如 abc[2,collapse] 之类的内容(而不是 abc:) 来指定 -c 需要两个参数,这两个参数之间应删除空格。但这似乎是一项相当大的工作,而且可能更容易解决。

关于c - Getopt:与多个 optargs 一起使用的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53512859/

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