如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
当前回答
echo $'hello\nworld'
印刷品
hello
world
$“”字符串使用ANSI C报价:
$‘string’形式的单词被特别对待。单词扩展为字符串,并按照ANSI C标准的规定替换反斜杠转义字符。
其他回答
您还可以执行以下操作:
echo "hello
world"
这在脚本内部和命令行中都有效。
在命令行上,按Shift+Enter键在字符串内进行换行。
这适用于我的macOS和Ubuntu 18.04(仿生海狸)系统。
str='hello\nworld'
$ echo | sed "i$str"
hello
world
确保你在巴什。
$ echo $0
bash
这四种方式对我都有效:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
这最好作为
x="\n"
echo -ne $x
-e选项将解释转义序列的反斜杠-n选项将删除输出中的尾随换行符
PS:命令echo的效果是始终在输出中包含一个尾随换行符,因此需要-n来关闭该功能(并使其不那么混乱)
如果前面的答案不起作用,并且需要从函数中获取返回值:
function foo()
{
local v="Dimi";
local s="";
.....
s+="Some message here $v $1\n"
.....
echo $s
}
r=$(foo "my message");
echo -e $r;
只有这个技巧在我使用Bash版本开发的Linux系统上有效:
GNU bash, version 2.2.25(1)-release (x86_64-redhat-linux-gnu)