命令行标志和命令行选项之间有区别吗?

yoy*_*fun 13 command-line flag command-line-arguments

我可以互换地听到这两个术语,我想知道它们之间是否有任何区别,例如标志用于单个字母选项或标志位于单个破折号之后。

Ƭᴇc*_*007 14

您可能会发现“参数”、“选项”和“开关”在此上下文中也经常互换使用。

具体来说,“标志”是布尔参数,仅通过包含命令行参数来设置,参数不需要或允许附加数据。如果包含参数/选项/标志,则视为“真”,如果排除它,则视为“假”。

示例标志类型参数:

command.exe -DeleteFiles

非标志参数示例:

command.exe -ServerName my.server.com

更多信息


mbi*_*ras 6

根据Build Awesome Command-Line Applications in Ruby 2的主要区别是:aswitch不接受参数,而 a 接受flag。直接从书中引用(第 15 页):

在此处输入图片说明

通常,如果一个开关是长格式的(例如--foo),它会“打开”某些行为,那么还有另一个前面带有no-(例如--no-foo)的开关会“关闭”该行为。

最后,长形式的标志通过等号接受它们的参数,而在标志的短形式中,通常不使用等号。例如,curl发出 HTTP 请求的命令提供短格式和长格式标志以分别指定 HTTP 请求方法:-X--request。以下示例调用显示了如何正确地将参数传递给这些标志:

curl -X POST http://www.google.com
curl --request=POST http://www.google.com
Run Code Online (Sandbox Code Playgroud)