什么时候命令选项前缀为两个连字符`–`?

知道命令选项何时加上前缀的一般规则是什么? --而不是-

编辑:首选引用规范来源的答案,例如steeldriver’s。 一个建议重复是指维基百科,这是好的,但可能不如GNU文档链接。

第二次编辑:我认为标题不是我原来的,所以如果它误导,我很抱歉,这不是我的编辑。 这可能解释了为什么有些评论会将我引导到手册页。

通常,单个破折号-引入单个字母选项,其中字母是选项名称的助记符。

双短划线--引入长选项名称,其中选项的名称是整个单词。

AFAIK这个约定是在20世纪80年代由FSF GNU实用程序引入的。 请注意, POSIX标准建议使用单个破折号选项,但双破折号除外,表示选项列表的结尾。

也可以看看

  • 何时以及如何在Unix / Linux中引入双短划线( – )作为选项分隔符的结尾?
  • 命令行选项样式 – POSIX还是什么?
  • Unix shell命令的一般语法是什么?

-通常只跟一个字符后面。 这是Unix的遗产。 --通常后跟多个字符(通常是单词或句子),这来自GNU项目。 通常命令(主要是GNU实用程序)带有两个参数类型, --- 。 例如,在ls命令中, -a--all参数完全相同,但一个是整个单词,另一个是单个字母。

例如,将整个单词作为参数可能对脚本有用,因为开发人员可以更轻松地读取它们并解释命令的参数。

另一方面,当您在终端中并希望更快地运行命令时,使用单个字母参数可能会变得很方便。

如果您对命令可以采用的参数有疑问,可以尝试以下命令:

 command --help command -? man command 

man命令将给出更详细的解释,但有些命令没有man(手动)页面。

通常命令行有三个部分:

 command -option argument 

所以, -这个被称为选项--这个被称为长选项。 它基本上几乎都做同样的工作,但你必须用后者明确地挑战你的选择。

以下是---您可以使用命令ls一些示例

在此处输入图像描述

关于论点

就像@kos提到的那样,使用---或者根本不使用连字符取决于程序开发人员的选择。

运行程序本身的命令是第一个参数(索引0 ),第二个参数(和进一步)由应用程序定义。

python中的一个例子:

 if sys.argv[1] == "peanutbutter": print("monkey") 

如果通过以下方式调用应用程序,将打印“monkey”:

  peanutbutter 

如果代码是:

 if sys.argv[1] == "--peanutbutter": print("monkey") 

运行应用程序时会发生同样的情况:

  --peanutbutter 

就如此容易。 通常,使用---常规的