echo在两个字符串之间添加换行符

时间:2015-12-28 16:30:01

标签: string bash echo newline quotes

我终于在bash中回应了两个字符串之间的新行 加上echo包含\ n的字符串。 如

m=$'line1\nline2'  
n=line3  
echo "$m" ""$'\n'"" $n  

给了我

line1  
line2  
 line3  

(我在$ n之前离开了空间以使其更清晰。)
有没有更好的方法呢?

2 个答案:

答案 0 :(得分:2)

根据您的shell,echo附带一个-e标记,用于打印转义字符。

echo -e "Hello\nWorld"

或者,您可以使用printf,但它不提供自己的尾随换行符,您需要确保占位符不会出现在您的文本中:

printf "Hello\nWorld\n"

答案 1 :(得分:1)

只需使用printf即可完全控制何时有新行:

printf "%s\n%s" "$var1" "$var2"
#---------^^

例如:

$ s1="hello how are you"
$ s2="I am fine thanks" 
$ printf "%s\n%s\n" "$s1" "$s2"
hello how are you
I am fine thanks