0
Мой оболочки 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
спасибо @fedorqui. это означает 'echo -e '$ ret" ' Я знаю, что' sh' или 'source' - это разные способы вызова, подробности мы можем видеть. [В чем разница между запуском сценария оболочки как ./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
Какую оболочку вы используете? Кажется, это должно быть 'zsh'; только эта оболочка (из Bash, Dash, Korn и zsh try) создает двухстрочный вывод, когда сценарий, который вы показываете, является источником; другие производят одну строку вывода (и Bash запускается как 'sh' добавляет' -e' к выходу). –