如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
当前回答
对于所问的问题(不是特殊字符等),只将双引号改为单引号。
echo -e 'Hello,\nWorld!'
结果如下:
Hello,
World!
其他回答
你也可以使用带括号的echo,
$ (echo hello; echo world)
hello
world
你可以一直做回声“”。
例如
echo "Hello,"
echo ""
echo "World!"
我的脚本:
echo "WARNINGS: $warningsFound WARNINGS FOUND:\n$warningStrings
输出:
WARNING : 2 WARNINGS FOUND:\nWarning, found the following local orphaned signature file:
在我的Bash脚本中,我一直像你一样生气,直到我尝试了:
echo "WARNING : $warningsFound WARNINGS FOUND:
$warningStrings"
只需按Enter键即可插入跳转。现在的输出是:
WARNING : 2 WARNINGS FOUND:
Warning, found the following local orphaned signature file:
如果有人发现自己的头撞在墙上,试图弄清楚为什么同事的脚本不会打印新行,那么请注意:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
echo $(GET_RECORDS);
如上所述,方法的实际运行本身可能会被一个回声所包裹,该回声会取代方法本身中的任何回声。显然,为了简洁起见,我淡化了这一点。这不是那么容易发现的!
然后,您可以通知您的同事,执行功能的更好方法如下:
#!/bin/bash
function GET_RECORDS()
{
echo -e "starting\n the process";
}
GET_RECORDS;
如果前面的答案不起作用,并且需要从函数中获取返回值:
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)