Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash *nix shell使用的饼图_Bash_Shell_Charts_Statistics - Fatal编程技术网

Bash *nix shell使用的饼图

Bash *nix shell使用的饼图,bash,shell,charts,statistics,Bash,Shell,Charts,Statistics,我遇到过这样一种情况,了解shell使用的百分比是非常有帮助的。例如,我正在寻找类似 bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc.. 显然,我知道有几个复杂因素——多重外壳、“使用”的定义、不确定性等等,但我希望看到一个从实际数据中得出的、基于某些既定指标的知情答案,即使结果可能会大错特错 如果有历史数据表明偏好发生变化,则可获得奖励。TIOBE指数如何: 它包括历史上流行的脚本语言(包括C-shell和bash)。我的猜测是,bash现

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

bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc..
显然,我知道有几个复杂因素——多重外壳、“使用”的定义、不确定性等等,但我希望看到一个从实际数据中得出的、基于某些既定指标的知情答案,即使结果可能会大错特错


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

TIOBE指数如何:


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

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

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

一点历史

大多数Unix用户使用Csh作为默认shell,但在BourneShell中编程。Csh在BourneShell中缺少很多特性,比如别名和命令行编辑,当您以交互方式使用它时,这些特性非常好。然而,Csh是一个糟糕的编程shell。Tom Christiansen在Csh的节目制作上达成了协议。事实是,即使是基于BSD的系统也在启动脚本中使用Bourne shell等

当Kornshell出现时,我与许多其他用户交换了。Kornshell具有熟悉的Bourne shell语法,但也具有Csh所具有的超级用户特性。事实上,科恩希尔号的指挥历史能力远远优于Csh号的指挥历史。Kornshell最大的问题是它归AT&T所有,不是开源的。几乎所有商用Unix平台(SunOS除外)都有Kornshell可用。然而,开源平台不能使用Kornshell

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

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

我的建议是不要太担心Bash vs.Kornshell vs.Bourne Shell vs.Posix。他们都是一模一样的。忘了Csh吧。该官员自2004年以来一直没有更新

如果编写shell脚本,请使用所有Bourne类型shell中常见的功能。使用
printf
而不是
echo
print
(Kornshell功能),使用
[
]
而不是
[
]
,因为双方括号在所有外壳之间并不完全兼容。也要避免使用数组。Bash4.0支持它们,但不支持早期版本。Kornshell同时支持数值数组和字符串数组,但它们的声明与Bash不同。这仍然保留了shell脚本大约90%的功能


此外,您最好使用Python或Perl编写脚本,它们是更强大、更快的脚本语言。此外,两者都比各种外壳更独立于平台。我写shell脚本,但只要超过几十行,我就会切换到真正的脚本语言。

有多种可能的度量方法,它们会给出完全不同的答案。一个是“具有给定登录shell的用户数”。另一个是“在shebang中使用给定shell编写的系统上的脚本数”。另一个是“计算机上使用给定shell运行的进程数”。答案可能需要你自己的机器、你公司的机器或整个世界(或整个世界的一小部分样本)。第一个统计数据来自密码数据库;第二种方法是扫描机器上的文件;第三个是通过流程会计。在哪里使用?在您网络上的系统上,还是在整个Internet上?你想知道有多少用户使用shell作为他们的登录shell,或者在shell中编写了多少脚本吗?这些指标中的任何一个都适用于我,只要清楚使用哪一个,并且我正在全世界寻找。如果人们对这个问题有疑问,请说明原因——对我来说,这是一个直接适用的编程问题;我想这就是为什么你得到了一些反对票。这确实是一个元编程问题,尽管我也不确定MSO是否适合这个问题。也许是程序员的SE?但我最近没有查看他们的常见问题,也不是那里的常客。我知道这很难,但是,否则我就不必在SE上发帖了,因为这个原因,我只剩下参数的灵活性了。这可能是你在没有对自己的系统进行测量的情况下所能得到的最好结果。感谢你花时间回答一个被否决的问题。虽然这是基于经验而不是数据,但你很清楚这个主题,这帮助我做出了猜测。我没有选择忽略csh并将伯恩壳聚在一起,但我现在有了一个更好的视角。