在Bash中,在这种特定情况下,echo的行为如下:
但现在我担心我即将在这么基础的操作上遇到更多的问题。(因此我进行了有关fish的调查:如果我将不得不在如此低的层面上对zsh进行更改,为什么不彻底切换到明显不同的东西呢?) 我自己没有找到任何有助于澄清bash和zsh之间echo区别的文档或直接列出它们之间差异的页面,所以有人能否在这里列出它们?也许可以指引我转换时可能具有广泛影响的其他需要注意的地方吗?
$ bash -c 'echo "a\nb"'
a\nb
但是在zsh中,同样的事情变得非常不同......:
$ zsh -c 'echo "a\nb"'
a
b
顺便提一句,我在Fish Shell中尝试了一下,因为我很好奇:
$ fish -c 'echo "a\nb"'
a\nb
我意识到我可以运行:
$ zsh -c 'echo -E "a\nb"'
a\nb
但现在我担心我即将在这么基础的操作上遇到更多的问题。(因此我进行了有关fish的调查:如果我将不得不在如此低的层面上对zsh进行更改,为什么不彻底切换到明显不同的东西呢?) 我自己没有找到任何有助于澄清bash和zsh之间echo区别的文档或直接列出它们之间差异的页面,所以有人能否在这里列出它们?也许可以指引我转换时可能具有广泛影响的其他需要注意的地方吗?
echo
来打印数据。无论使用哪种shell,printf %s\\n "a\nb"
的行为都是相同的。 - Léa Gris