【问题标题】:echo add a newline between two stringsecho 在两个字符串之间添加换行符
【发布时间】:2016-04-02 12:19:47
【问题描述】:
我终于在 bash 中的两个字符串之间回显了一个新行。
加上回显包含 \n 的字符串。
作为
m=$'line1\nline2'
n=line3
echo "$m" ""$'\n'"" $n
给我
line1
line2
line3
(为了更清楚,我在 $n 之前留下了空格。)
有没有更好的方法?
【问题讨论】:
标签:
string
bash
echo
newline
quotes
【解决方案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
【解决方案2】:
根据您的外壳,echo 带有一个打印转义字符的-e 标志。
echo -e "Hello\nWorld"
或者,您可以使用printf,但它不提供自己的尾随换行符,您需要确保占位符不会出现在您的文本中:
printf "Hello\nWorld\n"