上次用 dash 作为默认的 sh 以后,逐渐发现很多包安装的脚本(比如 /etc/init.d 里面)还是有不少 bashism 的问题,虽然都是小问题,像把“>/dev/null 2>&1”写成“&>/dev/null”一类,改起来还是嫌麻烦,所以今天就又把 sh 指回 bash 了。我发现的每处 bashism 都已经被别人报过了,有的已经过了很长时间,但是包的维护者就是不改……
确实,bash 和 dash 执行脚本的速度差别很容易测出来,dash 确实要快不少,但是对于系统启动来说,我也实在是感觉不到 Ubuntu 所声称的 dash 加快系统启动速度。Debian 计划在 lenny 中用 dash 作默认的 bash,所用的描述也是“fix bashisms”而不是所谓的加快速度。
devscripts 里面有一个工具 checkbashisms 可以帮助检查一些 bashism,效果一般,并且也会有误判。

