bash echo
命令未使用转义字符,例如“\ n”和“\ t”
echo "This is test string\nAnd this is next line"
对于上面的输入,它显示
This is test string\nAnd this is next line
那么如何在下一行打印?
答案 0 :(得分:11)
如果您希望展开转义字符,则需要echo -e
:
$ echo -e "This is test string\nAnd this is next line"
This is test string
And this is next line
答案 1 :(得分:6)
$ echo $'This is test string\nAnd this is next line'
This is test string
And this is next line
<强> ANSI-C Quoting 强>
$'string'形式的单词是专门处理的。单词扩展为字符串,替换为ANSI C标准指定的反斜杠转义字符。
答案 2 :(得分:4)
echo
命令变化很大 - 有些实现会在其参数中解释转义字符,有些则除非您添加-e
选项...有些会将“-e”打印为如果您尝试将其用作选项,则输出的一部分。如果您在做任何重要事情时想要可预测的结果,请改用printf
(请注意,您必须明确包含结束换行符):
printf "This is test string\nAnd this is next line\n"
我很难学到这一课,当OS X v10.5带有内置echo
的bash版本时,打破了我的一些脚本,这些脚本在v10.4下运行得很好。
答案 3 :(得分:0)
您可以使用echo -e
,也可以在脚本开头使用内置的shopt
:
shopt -s xpg_echo
...
echo "hello world\n"