echo 在两个字符串之间添加一个换行符
echo add a newline between two strings
我终于在 bash 中的两个字符串之间回显了一个新行。
加上回显包含 \n 的字符串。
作为
m=$'line1\nline2'
n=line3
echo "$m" ""$'\n'"" $n
给我
line1
line2
line3
(我在 $n 之前留下了 space 以使其更清楚。)
有更好的方法吗?
只需使用 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
根据您的 shell,echo
带有一个 -e
标志,用于打印转义字符。
echo -e "Hello\nWorld"
或者,您可以使用 printf
,但它不提供自己的尾随换行符,您需要确保占位符不会出现在您的文本中:
printf "Hello\nWorld\n"
我终于在 bash 中的两个字符串之间回显了一个新行。
加上回显包含 \n 的字符串。
作为
m=$'line1\nline2'
n=line3
echo "$m" ""$'\n'"" $n
给我
line1
line2
line3
(我在 $n 之前留下了 space 以使其更清楚。)
有更好的方法吗?
只需使用 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
根据您的 shell,echo
带有一个 -e
标志,用于打印转义字符。
echo -e "Hello\nWorld"
或者,您可以使用 printf
,但它不提供自己的尾随换行符,您需要确保占位符不会出现在您的文本中:
printf "Hello\nWorld\n"