Bash或者KornShell(ksh)?

时间:2020-03-05 18:56:37  来源:igfitidea点击:

我对* nix并不陌生,但是最近我一直在提示中花费很多时间。我的问题是使用KornShell(ksh)或者Bash Shell有什么优势?在其中一个使用另一个的陷阱在哪里?

希望从用户的角度来理解,而不是单纯地编写脚本。

解决方案

回答

Bash是基准,但这主要是因为我们可以合理地确定它安装在每个* nix上。如果我们打算分发脚本,请使用Bash。

不幸的是,我无法真正解决外壳之间的实际编程差异。

回答

一方面,bash具有制表符补全功能。仅此一项就足以使我胜过ksh。

Z shell将ksh的独特功能与bash提供的功能完美地结合在一起,除此之外,还有很多其他功能。

回答

@foxxtrot

实际上,标准外壳是Bourne外壳(sh)。 Linux上的/ bin / sh实际上是bash,但是如果我们打算使用跨平台脚本,则最好坚持使用原始的Bourne shell的功能,或者以诸如" perl"之类的方式编写它。

回答

我没有使用ksh的经验,但是我同时使用了bash和zsh。与bash相比,我更喜欢zsh,因为它支持非常强大的文件遍历,可变扩展修饰符和更快的制表符完成速度。

快速简介:http://friedcpu.wordpress.com/2007/07/24/zsh-the-last-shell-youll-ever-need/

回答

我的答案是"选一个并学习如何使用它"。它们都是不错的贝壳​​。 bash可能有更多的花哨功能,但是它们都有我们想要的基本功能。如今,bash越来越普及。如果我们一直在使用Linux,请坚持使用。

如果我们正在编程,则尝试坚持普通的" sh"以实现可移植性是一种好习惯,但是如今由于bash的使用范围如此广泛,因此一些建议可能有点过时。

了解如何使用补全和外壳历史记录;偶尔阅读联机帮助页,并尝试学习一些新知识。

回答

这有点像Unix vs Linux之战。大多数(如果不是全部)Linux发行版都安装了bash,并且ksh是可选的。大多数Unix系统(例如Solaris,AIX和HPUX)将ksh作为默认设置。

就我个人而言,我总是使用ksh,我喜欢vi补全,并且几乎所有东西都使用Solaris。

回答

Bash是Linux的标准。
我的经验是,与bsh或者csh相比,找到针对bash的帮助要容易得多。

回答

对于脚本,我始终使用ksh,因为它可以消除陷阱。

但是我发现bash更适合交互式使用。对我来说,emacs按键绑定和制表符补全是主要的好处。但这主要是习惯的力量,而不是ksh的任何技术问题。

回答

重击

各种UNIX和Linux实现具有各种不同的ksh源级别实现,其中一些是真正的ksh,其中一些是pdksh实现,其中一些只是与其他具有" ksh"个性的shell的符号链接。这可能会导致执行行为出现奇怪的差异。

至少使用bash可以确保它是单个代码库,而我们所需要担心的只是安装了什么版本(通常是最低版本)的bash。在几乎每个现代(但不是那么现代)的UNIX上都完成了大量脚本编写工作之后,根据我的经验,bash编程更加可靠。