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!
这是为什么呢?
------解决方案--------------------
不是的吧,
你的这个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"