Bash还是KornShell (ksh)?

我不是*nix的新手,但最近我花了很多时间在提示符上。我的问题是使用KornShell (ksh)或Bash Shell的优点是什么?使用其中一种的缺陷在哪里?

从用户的角度来理解,而不是纯粹的脚本。

请先 登录 后评论
本文连接: http://www.china-sunrider.com.cn/question/8593
source: https://stackoverflow.com/questions

9 个回答

foxxtrot

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

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

请先 登录 后评论
Allen

首先,bash有制表符自动补全功能。仅仅这一点就足以让我更喜欢它而不是ksh。

Z shell很好地结合了ksh的独特功能和bash提供的功能,并在此基础上提供了更多的功能。

请先 登录 后评论
Hank Gay

@foxxtrot

实际上,标准壳层是Bourne壳层(sh). /bin/sh 在Linux上 3.,但如果你的目标是跨平台的脚本,你最好坚持原来的Bourne shell的功能或编写类似于 perl

请先 登录 后评论
Chris AtLee

我没有使用ksh的经验,但我使用过bash和zsh。比起bash,我更喜欢zsh,因为它支持非常强大的文件通配符、变量展开修饰符和更快的制表符完成。

这里有一个简单的介绍:http://friedcpu.wordpress.com/2007/07/24/zsh-the-last-shell-youll-ever-need/

请先 登录 后评论
Incident

我的回答是“选一个,然后学习如何使用它”。它们都是不错的外壳;Bash可能有更多附加功能,但它们都具有您想要的基本功能。如今,Bash更加普遍。如果你一直在使用Linux,那就坚持下去吧。

如果您正在编程,为了可移植性,尽量坚持使用简单的“sh”是一种很好的实践,但随着bash现在如此广泛地使用,这种建议可能有点过时了。

学习如何使用补全和你的shell历史;偶尔读读手册,试着学习一些新东西。

请先 登录 后评论
Kristian

这有点像Unix和Linux的战斗。大多数(如果不是所有的话)Linux发行版都安装了bash和可选的ksh。大多数Unix系统,如Solaris、AIX和HPUX都将ksh作为默认值。

就我个人而言,我总是使用ksh,我喜欢vi补全,我几乎什么都用Solaris。

请先 登录 后评论
Matt

Bash是Linux的标准。
我的经验是bash比ksh或csh更容易找到帮助。

请先 登录 后评论
Jon Ericson

对于脚本,我总是使用ksh,因为它可以消除陷阱

但是我发现bash更适合交互使用。对我来说,emacs键绑定和制表符完成是主要的好处。但这主要是习惯使然,与ksh没有任何技术问题。

请先 登录 后评论
j.e.hahn

Bash。

各种UNIX和Linux实现都有各种不同的ksh源级实现,其中一些是真正的ksh,一些是pdksh实现,还有一些只是指向其他具有“ksh”特性的shell的符号链接。这可能导致执行行为出现奇怪的差异。

至少使用bash可以确保它是一个单一的代码库,您所需要担心的是安装了哪个(通常是最小的)bash版本。在几乎所有现代(和不那么现代)的UNIX上都编写了大量脚本,以我的经验来看,使用bash编程更加可靠。

请先 登录 后评论
user contributions licensed under CC BY-SA.