Bash或者KornShell(ksh)?
我对* 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编程更加可靠。