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

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

我经常交替听到这两个术语,我想知道它们之间是否有区别,比如标志是用于一个字母的选项还是标志位于一个破折号之后。

答案1

您可能还会发现“参数”、“选项”和“开关”在这种情况下也经常互换使用。

具体来说,“标志”是布尔参数,仅通过包含命令行参数即可设置,无需或允许为参数添加其他数据。如果包含参数/选项/标志,则计为“真”,如果排除它,则计为“假”。

标志类型参数示例:

command.exe -DeleteFiles

非标志参数的示例:

command.exe -ServerName my.server.com

更多信息

答案2

根据使用 Ruby 2 构建出色的命令行应用程序主要区别在于: aswitch不接受参数,而 aflag接受参数。直接引用书中的内容(第 15 页):

在此处输入图片描述

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

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

curl -X POST http://www.google.com
curl --request=POST http://www.google.com

相关内容