linux - 带有复合子选项的命令行选项

标签 linux command-line grammar

长选项样式是这样的

--key=value

这种语法可以很容易地扩展为类似数组的值

--key=value\ 1,value\ 2,value\ 3

如果每个项目都采用子选项,是否有标准方法?也就是说,当每个值都是复合类型时?

另一种选择是

--key=[object\ 1],[object\ 2],...

其中 object 具有指定为特殊 make_value 函数的语法。然后,查询 key 将给出一个 object 数组。用于指定 object 属性的语法可能看起来像 JSON 或其他东西。

另一种选择是完全放弃传统语法,并强制用户将整个命令行键入为 JSON 对象。

最佳答案

首先,GNU 系统上的标准不是这样的:

--key=value\ 1,value\ 2,value\ 3 // WRONG

但是这个:

--key=value\ 1 --key=value\ 2 --key=value\ 3

Bash中哪些可以这样写:

--key=value\ {1,2,3}

现在,如果您的值本身是键值对,则单个值的典型用法如下:

--key=value\ 1=42

或者对于 Bash 中的多个:

--key=value\ {1=42,2=300,3=0}

关于linux - 带有复合子选项的命令行选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39673920/

相关文章:

java - 从java套接字发送文件到c++linux套接字

c - 如何在 C 中与外部文本编辑器交互

java - ANTLR 语法第 1 行 :6 mismatched input '<EOF>' expecting '.'

android - 如何从 Linux 连接到 Android 蓝牙 socket

android - 为什么我在android内核中遍历内核模块中目录的dentry时不能正确提取所有文件名?

linux - Ubuntu12.10 中的 Visual Studio Express

windows - 学习控制台命令的重要性

在我的 Windows 10 shell 中找不到 PHP 命令,在 git bash 中也找不到。我从这里尝试了所有可用的解决方案

parsing - 重写 Bison 语法以修复 shift/reduce 冲突

php - PHP 是一种完全上下文无关的语言还是有上下文敏感的部分?