如何打印新行?这只会打印\n:

$ echo -e "Hello,\nWorld!"
Hello,\nWorld!

当前回答

简单地键入

echo

获得一条新线路

其他回答

这让我到了那里。。。。

outstuff=RESOURCE_GROUP=[$RESOURCE_GROUP]\\nAKS_CLUSTER_NAME=[$AKS_CLUSTER_NAME]\\nREGION_NAME=[$REGION_NAME]\\nVERSION=[$VERSION]\\nSUBNET-ID=[$SUBNET_ID]
printf $outstuff

产量:

RESOURCE_GROUP=[akswork-rg]
AKS_CLUSTER_NAME=[aksworkshop-804]
REGION_NAME=[eastus]
VERSION=[1.16.7]
SUBNET-ID=[/subscriptions/{subidhere}/resourceGroups/makeakswork-rg/providers/Microsoft.Network/virtualNetworks/aks-vnet/subnets/aks-subnet]

改用printf:

printf "hello\nworld\n"

printf在不同环境中的表现比echo更一致。

其他解决方案:

在某些情况下,您必须回显多行长内容(例如代码/配置)

例如:

生成代码/配置的Bash脚本

echo-e,printf可能有一些限制

您可以使用一些特殊字符作为占位符作为换行符(例如~),并在使用tr创建文件后替换它:

echo ${content} | tr '~' '\n' > $targetFile

它需要调用另一个程序(tr),这应该很好,IMO。

如果有人发现自己的头撞在墙上,试图弄清楚为什么同事的脚本不会打印新行,那么请注意:

#!/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;

你也可以使用带括号的echo,

$ (echo hello; echo world)
hello
world