【发布时间】:2016-07-26 11:06:54
【问题描述】:
我的 shell a.sh 脚本是这样的:
#!/bin/sh
# $ret maybe from database or pipe,whatever it likes:
ret="cnt
1"
echo -e $ret
并且以不同的方式调用会产生不同的结果:
$ sh a.sh
cnt 1
$ source a.sh
cnt
1
$
如何在sh 和source 下获得相同的输出?
【问题讨论】:
-
运行脚本和采购它是不同的事情。另外,您需要引用
echo。 -
感谢@fedorqui。这意味着
echo -e "$ret"我知道sh或source是不同的调用方式,细节我们可以看到Whats the difference between running a shell script as ./script.sh and sh script.sh -
您使用的是哪个外壳?看来一定是
zsh;当您显示的脚本是来源时,只有那个 shell(在 Bash、Dash、Korn 和 zsh 中尝试过)产生两行输出;其他的产生单行输出(并且 Bash 以sh运行,将-e添加到输出中)。
标签: shell