如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
如何打印新行?这只会打印\n:
$ echo -e "Hello,\nWorld!"
Hello,\nWorld!
当前回答
确保你在巴什。
$ echo $0
bash
这四种方式对我都有效:
echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world
echo Hello ; echo world
其他回答
其他解决方案:
在某些情况下,您必须回显多行长内容(例如代码/配置)
例如:
生成代码/配置的Bash脚本
echo-e,printf可能有一些限制
您可以使用一些特殊字符作为占位符作为换行符(例如~),并在使用tr创建文件后替换它:
echo ${content} | tr '~' '\n' > $targetFile
它需要调用另一个程序(tr),这应该很好,IMO。
这让我到了那里。。。。
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]
POSIX 7回波
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/echo.html
-e未定义,反斜杠已实现定义:
如果第一个操作数是-n,或者任何操作数包含<反斜杠>字符,则结果由实现定义。
除非您有可选的XSI扩展名。
因此,我建议您改用printf,这是非常明确的:
格式操作数应用作XBD文件格式符号[…]中描述的格式字符串
文件格式符号:
\n<newline>将打印位置移动到下一行的开头。
还要记住,Ubuntu 15.10和大多数发行版都实现echo,如下所示:
内置Bash:help echo独立的可执行文件:哪个echo
这可能导致一些混淆。
使用jq:
$ jq -nr '"Hello,\nWorld"'
Hello,
World
你也可以使用带括号的echo,
$ (echo hello; echo world)
hello
world