-1

我遇到过这样一种情况,按百分比了解 shell 使用的细分会非常有帮助。例如,我正在寻找类似的东西

bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc..

显然,我知道有几个复杂性 - 多个外壳、“使用”的定义、不确定性等等,但我希望看到从实际数据得出的知情答案,并基于一些规定的指标,即使结果可能是大错特错。

如果有历史数据表明偏好发生了变化,则将获得奖励。

4

2 回答 2

2

TIOBE指数怎么样:

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

它包括脚本语言(包括 C-shell 和 bash)的流行和历史。

于 2012-09-06T00:26:04.520 回答
1

我的猜测是 BASH 现在是首选的 shell,占 shell 用户的绝大部分。它是 Linux 上的默认 shell,Linux 几乎接管了 Unix 世界。(是的,Linux 并不是真正的 Unix,但它非常接近)。

Csh 是 BSD 集的域,其中包括 SunOS 和 Mac OS X。但是,Mac OS X 在 10.4 版中切换到 Bash,而 Solaris 切换到 POSIX shell(在语法上类似于 Bash)。

有点历史...

大多数 Unix 用户使用 Csh 作为他们的默认 shell,但在 Bourne shell 中编程。Csh 在 Bourne shell 中缺少很多功能,例如别名和命令行编辑,当您以交互方式使用它时,这些功能非常有用。然而,Csh 是一个糟糕的编程外壳。Tom Christiansen关于 Csh 的开创性论文在某种程度上敲定了 Csh 编程的协议。事实上,即使是基于 BSD 的系统也在启动脚本等中使用了 Bourne shell。

当 Kornshell 出现时,我与许多其他用户进行了切换。Kornshell 具有熟悉的 Bourne shell 语法,但也具有 Csh 所具有的高级用户功能。事实上,Kornshell 的命令历史能力远胜于 Csh 的命令历史。Kornshell 最大的问题是它归 AT&T 所有,并且不是开源的。几乎所有的商业 Unix 平台(除了 SunOS)都有 Kornshell 可用。但是,开源平台不能使用 Kornshell。

Bash 是在 1980 年代后期开发的,它是一个真正的 OSS shell,具有 Kornshell 的许多特性。然而,Bash 试图更符合 POSIX 标准(它采用了 Kornshell 的许多特性)。

我仍然更喜欢 Kornshell(主要是由于习惯),但我发现它在更少的系统上。我告诉大多数 Unix 新手学习 BASH,因为它拥有最多的资源并且最容易获得。

我的建议是不要太担心 Bash 与 Kornshell 与 Bourne Shell 与 Posix。它们都非常相似。忘记Csh。Turbo Csh官方页面自 2004 年以来一直没有更新。

如果您编写 shell 脚本,请使用所有 Bourne 类型 shell 中通用的功能。使用printf代替echoprint(Kornshell 功能),使用[and]代替[[and,]]因为双方括号在所有 shell 之间并不完全兼容。也避免使用数组。Bash 4.0 支持它们,但不支持早期版本。Kornshell 支持数字和字符串数组,但它们的声明方式与 Bash 不同。这仍然留下了大约 90% 的 shell 脚本功能。

此外,你最好用 Python 或 Perl 编写,它们更强大、更快速的脚本语言。另外,两者都比各种 shell更独立于平台。我编写了 shell 脚本,但只有几十行,然后我切换到真正的脚本语言。

于 2012-09-06T03:35:08.103 回答