当我在终端上运行此脚本时,它与换行符完美配合
echo -e $(echo "a \na")
输出:
a
a
当我在bash脚本中包装它时 - test.sh:
#!/bin/sh
echo -e $(echo "a \na")
我打电话给./test.sh,我得到了这个输出:
-e a a
如何使bash脚本使用换行符直接在终端上运行相同的输出?
答案 0 :(得分:2)
使用printf
。 echo
不可移植。有些shell不知道-e
等。此外,使用printf
您将获得更多格式选项。
printf "%s\n%s\n" a a
#or
printf "a\na\n"
您的问题的答案在@that other guy's评论中:
制作shebang#!/ bin / bash,否则它是一个sh脚本而不是一个 bash脚本
e.g。
sh test.sh
# -e a a
bash test.sh
# a
# a
dash test.sh
# -e a a
zsh test.sh
# a a
所以...使用printf
- 将在任何地方工作,并给出相同的结果。