什么时候命令选项前缀为两个连字符`–`?
知道命令选项何时加上前缀的一般规则是什么? --
而不是-
?
编辑:首选引用规范来源的答案,例如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
就如此容易。 通常,使用-
或--
是常规的 。