命令行选项风格
1、原始unix风格
a、命令行选项以连字符'-'开头,后跟单个字符表示选项,选项后面跟着取值,如:mysql -hlocalhost
b、选项不带取值的,可以组合在一起,如:sed -n -r 可以写成 sed -nr
c、偏爱小写字母,大写字母另有含义,非常简练
2、GNU风格
a、命令行选项以两个连字符'--'开头,后跟选项名称,选项后面使用空格或者等号 紧接着取值。
b、容易记忆,书写麻烦。
3、大多数程序是两种风格混用,两种风格都支持,前者是后者的缩写方式,如下:
mysql --host localhost 或者 mysql --host=localhost ,缩写方式为mysql -hlocalhost,注意缩写方式尽量不要再写成 mysql -h localhost,或者 mysql -h=localhost,因为这可能会存在解析困难,空格可能会认为是下一个选项,而等号可能会认为是取值的一部分。比如:
mysql -hlocalhost -uroot -p 123456,认为123456 是一个数据库,还需要输入密码。
mysql -hlocalhost -uroot -p=123456,认为密码是 "=123456",当然密码错误。
4、通过 man xxx 或者 xxx --help 我们可以看到命令的用法,会列出选项和选项的缩写方式,如mysql --help
-h, --host=name Connect to host. 前面是缩写方式,后面是描述说明。
5、一般的缩写方式是取全称的第一个字符,这就存在冲突的问题。比如:--host 与--help ,解决办法是:其中一个提供缩写方式,另外一个不提供。当然也可能提供另外一个字符,表示缩写,这个字符是大写形式或者意思相近的字符。比如:mysql 小写p是password的缩写,大写P是port的缩写。
6、对于help,一般会有三种方式,--help、-h、-?
随着时间的推移,简写方式有一些不成文的约定,如下《从linux就是这个范》截图: