Command line 如何格式化命令行参数键值对

Command line 如何格式化命令行参数键值对,command-line,format,standards,command-line-arguments,Command Line,Format,Standards,Command Line Arguments,命令行参数的典型格式为: myApp --myArg=myValue 如果我想通过命令行传入一组键值对,该怎么办?比如: myApp --myList={arg1=val1;arg2=val2;arg3=val3...} 既然如此,有谁能从使用良好的实用程序中提供具有这种命令行参数输入的示例吗?我翻了一些手册页,但没有找到 编辑:我想知道输入应该如何格式化,以及帮助文本可能是什么样子。我认为这在很大程度上取决于您如何解析程序中的参数 下面是一些程序接受多个键值对值的示例 man php:

命令行参数的典型格式为:

myApp --myArg=myValue
如果我想通过命令行传入一组键值对,该怎么办?比如:

myApp --myList={arg1=val1;arg2=val2;arg3=val3...}
既然如此,有谁能从使用良好的实用程序中提供具有这种命令行参数输入的示例吗?我翻了一些手册页,但没有找到


编辑:我想知道输入应该如何格式化,以及帮助文本可能是什么样子。

我认为这在很大程度上取决于您如何解析程序中的参数

下面是一些程序接受多个键值对值的示例

man php:

   --define foo[=bar]
   -d foo[=bar]   Define INI entry foo with value bar
文吉特:

   -c <name>=<value>
       Pass a configuration parameter to the command. The value given will
       override values from configuration files. The <name> is expected in
       the same format as listed by git config (subkeys separated by
       dots).
-c=
将配置参数传递给命令。给定的值将
覆盖配置文件中的值。预计将在年举行会议
与git config列出的格式相同(子键之间用
圆点)。
对于这两种情况,都可以将多个
-d
-c
参数传递给程序,从而使您能够向程序提供键值对列表

在我看来,拥有自己的风格来接受程序中的键值对列表并不是什么大问题,只要它能正常工作并且有很好的文档记录。:)


附言:我认为这个问题放在上面比放在上面更合适。请参阅和。

如果应用程序需要这么多参数,我将使用配置文件,而不是在命令行中传递它们:

myApp--config=file.cnf

这种方法有以下优点:

  • 灵活性—您可以为不同的调用准备一组配置,只需使用它们
  • 引号没有问题-如果命令行参数有空格、双引号或其他特殊字符,这总是很痛苦的
  • 简单性-您可以控制配置文件格式,例如INI、JSON、XML等。创建它很容易,解析起来也和解析命令行一样容易——如果不容易的话
  • 安全性-如果任何参数可能是敏感的,则在显示命令行参数的工具中不可见