bash脚本不回声在Echo子过程中



当我在终端上运行此脚本时,它与newline

完美搭配
echo -e $(echo "a na")

输出:

a 
a

当我将其包装在bash脚本-test.sh中时:

#!/bin/sh
echo -e $(echo "a na")

我致电./test.sh,我得到此输出:

-e a a

如何使bash脚本与直接在终端上运行的新线相同的输出?

使用printfecho无法移植。有些壳不知道-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-将在任何地方工作并给出相同的结果。

最新更新