【问题标题】:How To Format Command Line Argument Key Value Pairs如何格式化命令行参数键值对
【发布时间】:2013-08-09 13:19:05
【问题描述】:
【问题讨论】:
标签:
command-line
format
standards
command-line-arguments
【解决方案1】:
我认为这在很大程度上取决于您如何解析程序中的参数。
以下是一些程序接受多个键值对值的示例。
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).
对于这两者,可以将多个 -d 或 -c 参数传递给程序,这使您能够向程序提供键值对列表。
IMO,只要它有效并且有据可查,拥有自己的程序接受键值对列表的风格并不是什么大问题。 :)
P.S.:我认为这个问题放在Programmers Stack Exchange 上比放在 SO 上更合适。请参阅here 和here。
【解决方案2】:
如果应用需要这么多参数,我会使用配置文件而不是在命令行中传递它们:
myApp --config=file.cnf
这种方法有以下优点:
- 灵活性 - 您可以为不同的调用准备一堆配置,然后直接使用它们,
- 引用没有问题 - 如果命令行参数包含空格、双引号、 或其他特殊字符,总是很痛苦,
- 简单 - 您可以控制配置文件格式,例如 INI、JSON、XML 等。它很容易创建,并且像解析命令行一样容易解析——如果不是更容易的话,
- 安全性 - 如果任何参数可能是敏感的,它在显示命令行参数的工具中是不可见的。