具有复合子选项的命令行选项

时间:2016-09-24 07:50:25

标签: 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对象。

1 个答案:

答案 0 :(得分:0)

首先,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}