'echo'和'echo -e'之间的区别


25

echo和之间有什么区别echo -e?echo命令应使用哪些引号(“”或“”)?即:echo "Print statement"echo 'Print statement'?另外,可以与哪些选项一起使用echo


3
什么壳?echo -e不是由POSIX定义的,可能因外壳而异。
jordanm

这回答了你的问题了吗?unix.stackexchange.com/questions/65803/...
dhag

2
用于man echo阅读的手册echo
保姆2015年

echo不会将其参数作为命令执行,它只是...将它们作为回显
Anthon

Answers:


33

echo仅显示一行文本。"..."从字面上看,它将在以下两个引号内包含任何内容,并按原样打印。但是,echo -e您正在echo启用启用反斜杠转义。因此,请记住以下示例

INPUT: echo "abc\n def \nghi" 
OUTPUT:abc\n def \nghi

INPUT: echo -e "abc\n def \nghi"
OUTPUT:abc
 def 
ghi

注意:\n是新行,即回车。如果您想知道通过echo -e键入man echo终端可以识别哪些其他序列。


2
echo内置在大多数shell中。而是man echo要记录echo独立命令。
斯特凡Chazelas

您正在描述不在Unix一致性模式下的GNU echo或GNU Shell的行为echo。在其他地方,行为通常会有所不同。
斯特凡Chazelas

3

在大多数SHELL中,echo不能采用转义序列\n \t)。哪里echo -e可以

echo -e " This is \n an \t example"

单引号和双引号主要用于处理插值问题。您可能会在这里找到更多详细信息, 为什么回声会忽略我的引号字符?


恰恰相反。在大多数shell(ksh88,ksh93,pdksh,mksh,Bourne,zsh,破折号,bash和所有Unix兼容系统的sh)中,它们echo确实会扩展转义序列。echo接受的实现-e不符合POSIX。
斯特凡Chazelas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.