我终于在bash中回应了两个字符串之间的新行 加上echo包含\ n的字符串。 如
m=$'line1\nline2'
n=line3
echo "$m" ""$'\n'"" $n
给了我
line1
line2
line3
(我在$ n之前离开了空间以使其更清晰。)
有没有更好的方法呢?
答案 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