Chinaunix首页 | 论坛 | 博客
  • 博客访问: 661775
  • 博文数量: 810
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5025
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-22 11:41
文章分类

全部博文(810)

文章存档

2011年(1)

2008年(809)

我的朋友

分类: LINUX

2008-08-22 11:53:59


GNU/Linux操作系统中的/bin/sh是bash(Bourne-AgainShell)的符号链接,但鉴于bash过于复杂,有人把ash从NetBSD移植到Linux并更名为dash(DebianAlmquistShell),并建议将/bin/sh指向它,以获得更快的脚本执行速度。Ubuntu号称自从他们在6.10版里这样做了以后,系统启动速度有了明显的提升。Debian计划在下一个发行版(代号lenny)中也将dash作为默认的/bin/sh。

  按照惯例(以及很多写脚本的规范),标记为“#!/bin/sh”的脚本不应使用任何POSIX没有规定的特性(使用bash特性的脚本要使用“#!/bin/bash”),所以在理论上,这样应该没有任何副作用。但是现实中,Linux下的很多(不规范的)脚本有所谓bashism,却在文件头标记为“#!/bin/sh”。有人把脚本失败归咎于Ubuntu而不是自己的脚本,这是不公平的。

  刚才在Debian(testing)下尝试用dash作为/bin/sh,并重启了一下系统,好像快了那么一点点(心理作用?)不过我想它节约的那点时间也许比挂载我的两个reiserfs分区用的时间还要少……

  遇到的问题:自己的两个脚本挂了,把“#!/bin/sh”改为“#!/bin/bash”;自己的一个带bashism的Makefile挂了,加上“SHELL=/bin/bash”。

  在Debian下,先安装软件包dash,然后dpkg-reconfiguredash,回答Yes即可。

  在Ubuntu下这已经是默认,如果因为某些原因需要改回到bash,也是用dpkg-reconfiguredash。 下载本文示例代码
阅读(595) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~