每当我浏览文档和手册页时,我注意到大多数 linux 程序都有两种类型的参数,这是我真正感兴趣的发现......
- 一个似乎是完整的参数名称(长格式)。
- 一个似乎是一种速记。
举个grep
例子。如果我运行grep --help
免责声明:这不是一个grep
特别的问题。我已经在许多其他工具中看到了这一点。
Regexp selection and interpretation:
-E, --extended-regexp PATTERN is an extended regular expression
-F, --fixed-strings PATTERN is a set of newline-separated strings
-G, --basic-regexp PATTERN is a basic regular expression
-P, --perl-regexp PATTERN is a Perl regular expression
-e, --regexp=PATTERN use PATTERN as a regular expression
-f, --file=FILE obtain PATTERN from FILE
-i, --ignore-case ignore case distinctions
-w, --word-regexp force PATTERN to match only whole words
-x, --line-regexp force PATTERN to match only whole lines
-z, --null-data a data line ends in 0 byte, not newline
可以看出有两种类型的论点。简写和完整的参数名称。
另外需要注意的是,如果你指定这些参数的简写,它们之间用空格隔开,但是当使用完整的参数时,它似乎是用=
符号隔开的。例如:grep --file=FILE
vsgrep -f FILE
- 有两种不同类型的参数做同样的事情的目的是什么?
- 你能用
grep --file FILE
代替grep --file=FILE
吗? - 对于问题 2,如果您的答案是“因为这就是它的编程方式”,那么我的问题是他们为什么要这样编程?有什么原因你不能使用
grep --file FILE
吗? - 您应该遵循一些约定吗?
- 领先
-
在grep *-*-file
某事中是否起重要作用?
我很感激对此有一个可靠的答案,所以我可以理解为什么程序员会这样做!
谢谢!