LinuxSir.cn,穿越时空的Linuxsir!

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

坛里有兄弟用dash吗? 说说自己的看法

[复制链接]
发表于 2010-9-10 11:15:20 | 显示全部楼层 |阅读模式
坛里有兄弟用dash吗?

Ubuntu里默认把 /bin/sh -> /bin/dash
速度上确实有了改进

dash与bash大部分用法基本相同
但是好像dash不支持双括号方式的判断, 有点郁闷~

dash以后有可能会成为其他发行版的默认shell吗?
谈谈你的看法, 谢谢!
发表于 2010-9-11 09:27:49 | 显示全部楼层
会不会成为其它distro的默认的/bin/sh倒是不敢妄定,不过对于交互式使用它的能力不足以取代bash。
写脚本?参照Shell Command Language来写,这是标准,如果哪个shell实现没到位,那是它的失职。在这个框架下,用哪个shell实现跑脚本,无所谓。

BTW. 速度很重要吗?觉得慢?等几个月,更快的机器就上市了。
回复 支持 反对

使用道具 举报

发表于 2010-9-11 10:59:07 | 显示全部楼层
Ubuntu中将默认shell改为dash的主要原因是效率。
由于Ubuntu启动过程中需要启动大量的shell脚本,
为了优化启动速度和资源使用情况,
Ubuntu做了这样的改动。

现在有了Systemd,可能dash就被淘汰了。
就像有了btrfs以后ext4就被淘汰了一样,好的总是淘汰过渡用的旧的东西。

还有现在谁还写shell啊,perl 已经成为所有linux 发行版的base包的一部分,perl替代shell的趋势很明显。
回复 支持 反对

使用道具 举报

发表于 2010-9-11 23:12:51 | 显示全部楼层
有哪个发行版的启动脚本是用Perl写的吗?
另,Perl很大,像FreeBSD很早就把它从基础系统里移除了。
回复 支持 反对

使用道具 举报

发表于 2010-9-12 14:43:20 | 显示全部楼层
Post by Jockey;2111902
有哪个发行版的启动脚本是用Perl写的吗?
另,Perl很大,像FreeBSD很早就把它从基础系统里移除了。


看你是怎么想的,你肯定不知道这个:

http://perllinux.sourceforge.net/

BSD没玩过,但早先的Linux系统脚本都有依赖Perl的情况,很多核心的包都是用Perl写的,离了Perl是不太可能的。Perl核心并不大。你说大估计是把Perl的组件也算了上。

不过现在很多版本的Linux开始采用Python了,像gentoo、Fedora的中的脚本程序都多是用Python写的。与shell比较的话,perl/python的效率并不低,强调效率的时候多是直接采用C来替代。

PS:最近的TIOBE上,Perl又跌了2个百分点……06年的好日子不再了。Python/Ruby/PHP抢饭碗抢得太厉害了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-13 12:02:37 | 显示全部楼层
perl, ruby, python
不少人都在用这个写脚本吧? 比起蹩脚的bash确实快捷许多
回复 支持 反对

使用道具 举报

发表于 2010-9-13 13:43:02 | 显示全部楼层
其实都一样
实际上,如果脚本简单到可以很自然地用已有常用filter型命令无比舒服地连接在一起就能完成任务,那我毫无疑问会用sh写;
但如果sh脚本里嵌入的sed和awk这样的小语言过分复杂,需要跨越了很多行才能把代码写清晰,又会和sh的引用发生令人纠结的交互,那我会考虑用Perl/Python/Ruby
回复 支持 反对

使用道具 举报

发表于 2010-9-16 10:35:42 | 显示全部楼层
其实用sh还是用其他很好判断,如果脚本超过100行,就用其他,否则用sh。如果是管理什么的脚本,就用perl,因为perl创始人是系统管理员,如果做大量数学运算的,用python,因为python创始人是数學碩士。
回复 支持 反对

使用道具 举报

发表于 2010-9-17 14:09:47 | 显示全部楼层
介个说法就囧了...
Post by fjfb;2112466
如果是管理什么的脚本,就用perl,因为perl创始人是系统管理员,如果做大量数学运算的,用python,因为python创始人是数學碩士。
回复 支持 反对

使用道具 举报

发表于 2010-9-18 01:41:11 | 显示全部楼层
Post by fjfb;2111843

还有现在谁还写shell啊,perl 已经成为所有linux 发行版的base包的一部分,perl替代shell的趋势很明显。

shell 我脚本几乎天天写。在嵌入环境里 perl 几乎不存在。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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