buntu下shell脚本运行异常:bash和…

原创 2013年12月02日 09:12:26

转载于:http://www.51testing.com/?uid-225738-action-viewspace-itemid-208702

 

我用bash到语法写了一个shell脚本(准确的说是把书上的脚本敲进电脑),在ubuntu下,用sh test.sh来运行,但是出现了意料之外到结果,比如echo -e "\nTest\n"到执行就不同,直接用sh test.sh运行,会打印出-e(作为字符串);而直接在终端中输入echo -e "\nTest\n"是不会输出"-e"的。
我就在想是什么原因,后来终于发现是Ubuntu下sh默认指向dash
echo $SHELL  -->  /bin/bash
type sh      -->  /bin/sh
然后我到/bin下看了有"sh -> dash",原来sh是/bin/dash的链接。
后来google了一下才发现,buntu6.10已将先前默认的bashshell更换为了dash。其表现是/bin/sh链接到了/bin/dash而不是传统的/bin/bash。
bash - GNU Bourne-Again SHell
dash - 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就可以了。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

bash shell脚本实现android自动化测试部署与运行

我的配置的linux 64, android4.2.2的sdk。 实现的细节都在代码注释里了,变量名也是本意。 主流程为: 检测是否指定端口的模拟器已经运行,若有则关闭创建模拟器启动模拟器用ant...
  • hursing
  • hursing
  • 2013年10月28日 15:51
  • 4504

Shell脚本之监视主进程的运行状态,异常退出后自动重启

一、产品经过长期的自动化测试后,发现偶然出现主进程异常退出的现象,于是受开发者的委托,用SHELL写一段监视程序,要求如下: 主进程退出后,自动重启这个主进程。 主进程程序状态为Z时,重启该主进程...

运行shell脚本,错误bash: ./temp.sh: /bin/bash^M: bad interpreter: No such file or directory

今天写了一个shell脚本,然后在执行的时候报错,脚本内容很简单,仅供测试: Shell代码   #!/bin/sh      echo "test shell "   ...
  • mm_bit
  • mm_bit
  • 2015年09月06日 16:48
  • 919

bash shell脚本常用功能

转自:http://blog.sina.com.cn/s/blog_803458bd0101egd3.html 目录: 第一章 简介   $ 表示普通用户   #!/bin/bash  ...

高级Bash Shell脚本编程指南

  • 2014年07月16日 15:34
  • 1.3MB
  • 下载

Bash shell脚本新手指南

  • 2007年11月22日 23:17
  • 1.55MB
  • 下载

Linux bash shell脚本语法入门(转)

1.基础   #!/bin/bash   //bash脚本第一句都是这个,他会让系统指定以bash来解释这个脚本  #                 //shell脚本注释符号  2.变量和使用 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:buntu下shell脚本运行异常:bash和…
举报原因:
原因补充:

(最多只允许输入30个字)