Welcome 微信登录

首页 / 操作系统 / Linux / Ubuntu下shell脚本运行异常:bash和dash的区别

Ubuntu下我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e " Test "到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e " Test "是不会输出"-e"的。我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash。echo $SHELL  -->  /bin/bashtype sh      -->  /bin/sh然后我到/bin下看了有"sh -> dash",原来sh是/bin/dash的链接。后来google了一下才发现,buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。bash - GNU Bourne-Again SHelldash - Debian Almquist Shell可以分别man bash  / man dash看一下。那么怎么把sh改为指向bash呢?最暴力的方法当然是直接把/bin/sh的软链接改到bash中,如:ln -s /bin/bash /bin/sh但是,有优雅一些的方法,sudo dpkg-reconfigure dash出现菜单问你是否要dash的时候,选no就可以了。再次检查一下, ls /bin/sh -al 发现软链接指向/bin/bash就可以了。相关阅读:Ubuntu 的 bash和dash的区别 http://www.linuxidc.com/Linux/2012-03/57493.htmUbuntu Shell引发编译问题 http://www.linuxidc.com/Linux/2013-10/91099.htm更多Ubuntu相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2Ubuntu Shell引发编译问题Ubuntu 12.04下安装CUDA v5.5相关资讯      bash  Ubuntu Shell  dash 
  • Bash简明教程--变量  (今 21:58)
  • Linux入门学习:认识shell和bash  (03月25日)
  • 如何用 Bash 创建一个二进制发布包  (09/25/2015 08:42:19)
  • Bash的基本功能  (03月27日)
  • 快来帮 Bash 投票新 LOGO 吧!  (12/19/2015 20:55:48)
  • Bash 下如何逐行读取一个文件  (09/02/2015 08:53:33)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图