当我在终端上运行此脚本时,它与newline
完美搭配echo -e $(echo "a na")
输出:
a
a
当我将其包装在bash脚本-test.sh中时:
#!/bin/sh
echo -e $(echo "a na")
我致电./test.sh,我得到此输出:
-e a a
如何使bash脚本与直接在终端上运行的新线相同的输出?
使用printf
。echo
无法移植。有些壳不知道-e
并且喜欢。另外,使用printf
您将获得更多格式选项。
printf "%sn%sn" a a
#or
printf "anan"
您问题的答案是在其他人的评论中:
制作shebang#!/bin/bash,否则是一个sh脚本,而不是一个 bash脚本
,例如
sh test.sh
# -e a a
bash test.sh
# a
# a
dash test.sh
# -e a a
zsh test.sh
# a a
所以...使用printf
-将在任何地方工作并给出相同的结果。