--
了解命令选项何时以 而不是 为前缀的一般规则是什么-
?
编辑:最好提供引用规范来源(例如steeldriver 的)的答案。建议的重复答案引用了 Wikipedia,虽然还行,但可能不如 GNU 文档链接好。
第二次编辑:我认为标题不是我原创的,所以如果它误导了,我很抱歉,这不是我的编辑。这可能解释了为什么有些评论会引导我查看手册页。
答案1
一般来说,单个破折号-
引入单个字母选项,其中字母是选项名称的助记符。
双破折号--
引入长选项名称,其中选项的名称是一个完整的单词。
据我所知,这个约定是在 20 世纪 80 年代由 FSF GNU 实用程序引入的。请注意POSIX 标准建议使用单破折号选项,但双破折号除外,用于表示选项列表的结束。
也可以看看
答案2
关于参数
就像 @kos 提到的那样,使用-
,--
或不用连字符根本取决于程序开发者的选择。
运行程序本身的命令是第一个参数(索引0
),第二个参数(及以后)由应用程序定义。
Python 中的一个示例:
if sys.argv[1] == "peanutbutter":
print("monkey")
如果使用以下命令调用应用程序,则会打印“monkey”:
<application> peanutbutter
如果代码是:
if sys.argv[1] == "--peanutbutter":
print("monkey")
当应用程序以下列方式运行时也会发生相同的情况:
<application> --peanutbutter
就这么简单。通常,使用-
或--
传统的。
答案3
-
通常后面只有一个字符。这是从 Unix 继承而来。--
通常后面跟着多个字符(通常是单词或句子),这来自 GNU 项目。通常命令(主要是 GNU 实用程序)带有两种参数类型,-
和--
。例如,在ls
命令中,-a
和--all
参数的作用完全相同,但一个是整个单词,另一个是单个字母。
例如,将整个单词作为参数可能对脚本有帮助,因为开发人员可以更轻松地读取它们并解释命令的参数。
另一方面,当您在终端中并且想要更快地运行命令时,单个字母参数可能会变得方便。
如果您对命令可以采用的参数有疑问,可以尝试以下几个命令:
command --help
command -?
man command
命令man
会给出更加详细的解释,但是有些命令没有man(手册)页。