以下是引用zklhp在2012-9-1 15:56:54的发言:
这是个学问 命令行的参数有两个风格 具体名字忘了
一个是两个杠加上一个词 比如 --force 这种的特点就是杠多 参数相对也长 还有一个风格就是-f 这种一般短 杠也有一个
linux或者说类unix类操作系统的命令行程序一般都用这两种风格 有用某一种的也有都用的 具体哪种看情况了 这个是个缺点 因为很混乱
貌似还有一种风格 就是 ps aux 这样的 不写杠 不过好像用的少罢
windows下的一般是用-或/分隔 貌似用/的多
好像就叫长参数风格和短参数风格。
长参数就是两个 dash,加一个单词,比如你说的 --force。如果要加数个单词,那么单词之间也用短横线连接,比如 --no-window-system(来自 emacs)。长参数的风格的特点是参数的意思很明确,可读性也高,GNU 推荐用在脚本中。一般大部分长参数都有对应的短参数形式。
短参数只有一个 dash,加一个字母。比如 -f。也有少数的不止一个字母的,但不多。比如 -nw(等价于 --no-window-system)。短参数的优势是打的快,便于在命令行上使用。缺点是可读性差一些,不熟悉的这个工具的人不查手册可能不知道参数的意思。还有就是,如果一个工具的参数过多的话,就不太可能使所有的参数都有短参数的形式。
这些是现代 linux 参数风格的约定。有一些传统的工具,不符合现在的约定。有些工具可以压缩选项,比如: ls -alh 其实是 ls -a -l -h 的缩写。还有像 zklhp 提到的 ps 连 - 都可以不用。为了尊重传统,这些工具的这些特点也留下来了。但一般都补充了对应的长参数,或者短参数的指定形式。
所有的 gnu 工具,都有两个指定的参数: --help 和 --version,以列印帮助信息或版本信息。gnu 推荐其它工程也提供这两个参数。
另外,虽然中文好像比较混乱,英文是区分 option(选项) 和 argument(参数) 这两个术语的。
在命令行里用于控制工具的不同行为的类似开关的东西,称作选项。比如 ls -l 里的那个 -l 就是选项。
用于指定某些特定文件或脚本的东西,称作参数。比如 cat file.txt 中的 file.txt 就称作参数。或者 sed -n -e '1p' 中的 '1p' 是 选项e 的参数,也是参数的一种。现代的约定都是针对选项的,它们一般都以 - 开头,参数不这样。
[
本帖最后由 pangding 于 2012-9-1 17:13 编辑 ]