2008年12月7日星期日

ubuntu的sh连接到了dash

前几天把ubuntu在自己的笔记本装上之后,开始学习写脚本。

开始一些简单脚本还很顺利,后来写流程控制的脚本时却发现sh *.sh怎么都运行不了,总是报错。结果郁闷了大概半个周末加一个晚上的时间,不停地调试修改,不停地抓狂

今天直接用执行的方式:
chmod u+x *.sh; ./*.sh
居然执行成功。于是考虑是否是ubuntu的问题,google “ubuntu bash”出了结果:
Debian采用了dash这个更加小巧快捷的默认shell,不支持脚本中诸如(())、[[]]的类似c语言的结构。

修正方法,在终端中输入以下命令:
dpkg-reconfigure dash然后选择no #需要root权限
或者
sudo dpkg-reconfigure dash 后选择no #需要输入自身密码,且必须是sudoer

没有评论: