如何在Linux shell脚本中插入新行?

我想在多个echo语句之间插入一个新行。 我试过echo "hello\n" ,但它不工作。 这是打印\n 。 我想要这样的所需的输出:

 Create the snapshots Snapshot created 

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

 echo Create the snapshots echo echo Snapshot created 

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

使用带-e标志和embedded换行符的单个echo语句的另一种替代方法\n

 echo -e "Create the snapshots\n\nSnapshot created" 

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

 printf "Create the snapshots\n\nSnapshot created\n" 

这在许多系统中工作更可靠,但它不符合POSIX标准。 请注意,您必须在最后手动添加\n ,因为printf不会像echo一样自动追加换行符。

使用这个echo语句

  echo -e "Hai\nHello\nTesting\n" 

输出是

 Hai Hello Testing 
 echo $'Create the snapshots\nSnapshot created\n' 

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

 printf "Hello times %d\nHere\n" $[2+3] 

printf命令可以接受参数,并且需要格式控制string与标准C printf(3)函数类似(但不完全相同) 。