日期:2014-05-16  浏览次数:20842 次

shell 编程输出疑问,求解
    #!/bin/bash  
    #program:  
    #   This program shows "Hello World!"in your screen:  
    #History:  
    #2012/4/29   
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin  
    echo -e "Hello World! \a \n"  
    exit 0  


两种不同的输出结果:
zxf007@ubuntu:~/scripts$ ./sh01.sh
Hello World!  

zxf007@ubuntu:~/scripts$ sh sh01.sh
-e Hello World! 

这是为什么呢?
------解决方案--------------------
引用:
引用:
一个运行调用/bin/bash,一个运行调用/bin/sh,不一样。

++


  不是的吧,你的这个sh已经连接到bash上了,所以执行的还是同一个shell,只不过你用  ./sh01.sh  是在当前shell里执行,你用 sh sh01.sh是新开一个shell执行,执行完毕之后那个shell 就退出了。
------解决方案--------------------
在我的环境中,两个shell不一样

$ l /bin/ls
-rwxr-xr-x 1 root root 94656 2007-09-22 /bin/ls
$ l /bin/bash
-rwxr-xr-x 1 root root 661528 2007-09-22 /bin/bash
------解决方案--------------------
bash 内置(builtin) echo 命令。支持 -e
sh 没有内置的 echo 命令运行的是 /bin/echo 命令不支持 -e
楼主可以试试执行
/bin/echo -e "Hello World! \a \n"