当前位置: 技术问答>linux和unix
shell 编程输出疑问,求解
来源: 互联网 发布时间:2017-04-08
本文导语: #!/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! ...
#!/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!
这是为什么呢?
#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!
这是为什么呢?
|
bash 内置(builtin) echo 命令。支持 -e
sh 没有内置的 echo 命令运行的是 /bin/echo 命令不支持 -e
楼主可以试试执行
/bin/echo -e "Hello World! a n"
sh 没有内置的 echo 命令运行的是 /bin/echo 命令不支持 -e
楼主可以试试执行
/bin/echo -e "Hello World! a n"
|
不是的吧,你的这个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
$ 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