- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何为一个标志使用两个参数?
例如:
./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/
我正在从用户那里获取命令行参数。 然后我为命令做 switch case,例如: case 'f': *file_name = optarg; break;
我希望能够为 -a arg 获取 2 个值,例如:-a min max 我有以下代码: while((opt = getopt(argc,argv,"a:c:k:rv")) != -1) {
我正在尝试在 optarg 上使用 atoi,但它也可能是任何东西。我一直在试图弄清楚为什么我的 getopt_long 不起作用。当我输入我的 switch 语句时,optarg 设置为 null
Optarg 始终为空。应用程序崩溃。 static const char* const short_options = "a:h:p"; static const struct option lon
尝试使以下 C 代码工作,但每次我给它一个文件以返回它的大小时,都会说文件名为空。 我尝试过的示例命令行: 问题7 -h -t -f 问题8.c 无论如何,它返回 optarg 为 null。我不确定
我有一个程序需要使用以下方式调用: program parameter1 parameter2 -x1 -y 但我觉得如果我这样做应该会起作用: program -x1 -y parameter1 p
我希望能够在我的脚本中接受强制和可选标志。这是我目前所拥有的。 #!bin/bash while getopts ":a:b:cdef" opt; do case $opt in
我想在争论后得到更多的 optargs,但我不知道该怎么做。我想像 这样调用我的程序 ./test -a first second -b third 我现在只能在参数 -a 后获得一个值。当我尝试将两
我是C编程的新手,我对C++有一些经验,但对C一无所知。我有一个关于getopt optarg参数的问题,它是一个字符串。我想检查 -x 标志的输入参数是否等于“dog”。我当前的代码如下所示: in
我有下一个代码。 int opt; while ((opt = getopt(_argc, _argv, "n:pcs:")) != -1) { switch (opt) {
您好,我正在研究一本书中的一个程序。该程序几乎按预期运行,除了一个错误。每次我尝试使用“-l”大小写时,我都会遇到段错误。有什么想法吗? #include #include int main(in
考虑以下代码: int number; while((w = getopt(argc, argv, "n:s:")) != -1) { switch (w){
这个问题特别涉及 gcc 中可选参数的 getopt。当一个选项被定义为有一个可选参数并且没有给出参数时,optarg 被设置为一个空指针或一个指向空字符串的指针。手册似乎没有处理这种情况。行为是否得
我正在使用 getopt 来解析传递给我的 c 程序的参数。我想在解析时检查 optarg 是否全是数字,但我不知道如何获取 optarg 中值的长度: int opt; unsigned short
您好,我正在编写一个简单的客户端-服务器程序。在这个程序中,我必须使用 getopt() 来获取端口号和 IP 地址,如下所示: 服务器 -i 127.0.0.1 -p 10001 我不知道如何从 o
我是 getopt(3) 的新手,查看了一些示例并遇到了 this one . 这些行 case 'c': cvalue = optarg; break; 我觉得很奇怪,因为 op
我需要这样调用我的程序: ./program hello -r foo bar 我从 argv[1] 中打招呼,但我在使用值 bar 时遇到问题,我是否也应该将“r:”更改为其他内容? while((
有人可以检查此代码片段并告诉我为什么当我使用 -p abcdef 调用此脚本时 $OPTARG 从未具有传入的参数值吗? # Process command-line options passed a
通过实验,我似乎可以捕获 optarg 的连续值。迭代时 int getopt(int argc, char * const argv[], const char *optstring)并稍后引用它们
我正在尝试使用 GNU getopt 函数解析我的 C 程序中的一些命令行参数。假设我调用以下电话: ./my_program -E 16 -t path/to/file 我目前的期望是,如果我有以下
我是一名优秀的程序员,十分优秀!