特别是,为什么有时候某些命令的选项前面有一个+
符号,有时候一个-
符号?
例如:
sort -f
sort -nr
sort +4n
sort +3nr
答案 0 :(得分:21)
答案 1 :(得分:5)
完全是武断的;该命令可以以其自己的特殊方式实现所有选项处理,或者它可以调用其他一些便利函数。 getopt()
系列函数非常流行,因此大多数最近编写的软件都遵循这些例程设置的约定。当然总有例外!
答案 2 :(得分:1)
应用程序需要解析选项,因此不一致。扩展您的排序示例,这些对于coreutils来说都是等效的:
sort -k3
sort --k 3
sort --key 3
sort --key=3
_POSIX2_VERSION=199209 sort +2
答案 3 :(得分:1)
shell命令只是一个程序,它可以随意解释其命令行。 Unix从来没有像Apple的接口警察那样确保命令行界面在应用程序之间保持一致。因此,存在不一致性,尤其是在较旧的命令中。
凝视我的水晶球,我认为命令行工具将慢慢迁移到GNU标准,双破折号和所有。 (我从单身短划线长大后仍然发现双击非常笨拙,但 一致。)