0
我的殼a.sh
這樣的腳本不同:爲什麼它運行的源和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
謝謝@fedorqui。這意味着'echo -e「$ ret」' 我知道'sh'或'source'是不同的調用方式,我們可以看到細節[運行shell腳本爲./script.sh和sh script.sh的區別](http://stackoverflow.com/questions/2468132/whats-the-difference-between-running-a-shell-script-as-script-sh-and-sh-script) – tonylee0329
你正在使用哪個shell?看來它必須是'zsh';只有那個shell(在Bash,Dash,Korn和zsh嘗試過的時候)會在你顯示的腳本來源時產生雙行輸出;其他產生一行輸出(並且Bash以'sh'運行,將'-e'加到輸出中)。 –