关于bash:如何在Linuxshell脚本中插入新行?

How to insert a new line in Linux shell script?

本问题已经有最佳答案,请猛点这里访问。

我想在多个echo语句之间插入一行新行。我试过echo"hello
"
,但没有用。正在打印
。我想要这样的输出:

1
2
3
Create the snapshots

Snapshot created


echo语句之间插入新行的最简单方法是不带参数地插入echo,例如:

1
2
3
echo Create the snapshots
echo
echo Snapshot created

也就是说,没有任何参数的echo将打印一个空行。

使用带有-e标志和嵌入换行符
的单个echo语句的另一种选择:

1
2
3
echo -e"Create the snapshots

Snapshot created"

但是,这是不可移植的,因为-e标志在所有系统中都不能始终如一地工作。如果您真的想这样做,一个更好的方法是使用printf

1
2
3
4
printf"Create the snapshots

Snapshot created
"

这在许多系统中更可靠地工作,尽管它不符合POSIX。注意,您必须在末尾手动添加一个
,因为printf不会像echo那样自动附加换行符。


使用此echo语句

1
2
3
4
 echo -e"Hai
Hello
Testing
"

输出是

1
2
3
Hai
Hello
Testing


1
2
3
echo $'Create the snapshots
Snapshot created
'


您可以使用printf(1)命令,例如

1
2
3
printf"Hello times %d
Here
"
$[2+3]

printf命令可以接受参数,并且需要一个与标准c printf(3)函数的格式控制字符串类似(但不完全相同)的格式控制字符串…