LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 884|回复: 3

关于cshell的一个问题

[复制链接]
发表于 2006-5-30 17:54:53 | 显示全部楼层 |阅读模式
unix工作站上的EDA工具通常都是用cshell配置的,据我所知,现在还在用cshell配置工具的公司不少。

我想问的是:
  cshell究竟哪里不好,在linux论坛上大家好像都不屑cshell。cshell真的会被淘汰吗?用哪种shell配置工具是工具本身的要求确定的还是其他的原因?

望用过的高手指点一二。

谢了!
发表于 2006-5-30 19:52:12 | 显示全部楼层
下面发言纯粹来自实践!

无所谓不屑吧。绝大多数Linux的默认shell就是bash,可能和它是GNU项目有关。

一般认为csh适合交互使用而不适合脚本编程。首先和它本身的一些限制有关,有一篇csh.whynot(Csh Programming Considered Harmful)的著名文章,对此进行了详述。

sh (Bourne兼容shell)是标准UNIX(符合Single UNIX Specification的系统)必备的。

sh是有标准的(POSIX 1003.1 Shell & Utilities卷)。

所以sh脚本的可移植性是有保证的。


在交互使用方面,csh肯定优于最早的sh。csh最早是BSD的产物,但Unix System V的用户强烈感到sh作为交互shell的不便,所以把csh移植到SysV的呼声很高,很多发行商把csh作为增值品加入了SysV,到SVR4就正式吸收了csh和其它很多来自BSD的产物如TCP/IP。

SVR4还引入了ksh,这是AT&T Bell Lab的David Korn开发的与sh向后兼容的吸收了csh交互使用优点的shell。

此后,sh的衍生如GNU Bash和zsh,都和ksh一样吸收了csh交互使用的优点,并有很多增强,并且它们都可运行在POSIX兼容模式下,所以csh的优势并不那么大了。

现在纯粹的csh的应用还广泛吗?tcsh是否更加普遍?FreeBSD上tcsh是默认shell,苹果上一直在改,从tcsh到zsh到bash。其它商用Unix则不清楚。

你说到不屑,其实很多从Unix时代过来的“老人”倒是对bash很是不屑,更钟爱ksh或zsh,comp.unix.shell上持这种观点的人不少。就是Linux用户中偏爱其它shell的也很多,zsh的受欢迎程度是很高的,主要是交互使用方面,优点比bash更多。好在Linux上这些主流shell都容易获得的。
回复 支持 反对

使用道具 举报

发表于 2006-5-30 20:11:16 | 显示全部楼层
忘了csh.whynot的链接了。

http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/

另外我说的默认shell是指adduser添加用户的登录shell,基本所有*NIX的起始脚本用的都是/bin/sh。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-6-6 17:57:14 | 显示全部楼层
非常感谢 seamonkey!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表