在bash中用换行符回显文本


35

我想在文件后面加上文字。所以我用bash写

echo text >> file.conf

但是,它不会留下新的一行。所以我只能这样做一次。如何添加新行?


5
你什么意思?一个额外的换行?echo默认情况下添加换行符。
暂停,直到另行通知。

4
echo默认情况下不会留下换行符-您是否需要留下两个换行符?另外,如果要在Linux系统上运行此程序,并在Windows或Mac系统上打开文件,请确保您的编辑器支持* nix换行符,否则即使它显示在多行中,它也将全部显示在一行中。
Darth Android

Answers:


79

选项1:

% echo -e "text\n" >> file.conf

选项2:

% ( echo text ; echo "" ) >> file.conf

选项3:

% echo text >> file.conf
% echo ""  >> file.conf

7
您可以删除空参数(echo ""=> echo)。另外,选项4 echo $'text\n':,对于$''bash解释的任何命令都非常有用。

7

我认为正确的答案应该是您的命令

回显文本>> file.conf

确实添加了额外的一行,但是新文本之后,而不是之前。

我猜您想在该文本之前添加一行,这可能是因为您的初始文件没有以新行结尾。在这种情况下,您可以使用

echo -e“ \ ntext” >> file.conf

相反,该-e选项允许您使用换行符\n


3

只是为了增加akira的回应

选项4:

使用ctrl-v ctrl-m组合键两次在终端中插入两个换行符。Ctrl-v允许您将控制字符插入终端。如果愿意,可以使用Enter键或return键代替ctrol-m。它插入相同的东西。

最终看起来像 echo text^M^M >> file.conf


2
如果您需要换行而不是回车(linux / unix),请尝试echo "text^J^J" >> file.conf键入^ J可能实际上会插入文字换行符,只需确保将引号括起来就可以了。
Darth Android
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.