假设 file.txt 中有一行“aaaa”,我想在其后仅添加一个空行,然后在空行后添加一行文本。
我做了:
echo -e "\n" >> file.txt
echo "bbbb" >> file.txt
然后我在 aaaa 和 bbbb 之间看到了两个空行
当我只使用 echo "bbbb" >> file.txt 时,就有了两个文本行之间没有空行。
为什么会发生这种情况,我该如何摆脱它?
答案1
echo
输出用作参数的字符串,然后在输出字符串的末尾添加换行符以终止该行。
和
echo "string"
你会得到string
, 并在末尾换行。
因此,与
echo -e "\n"
您将得到换行符和末尾的换行符(即两个空行)。
如果您不需要额外的换行符(即输出未终止的行),请使用echo
其-n
选项,或者在这种情况下您只想插入空行,只需使用echo ""
或echo
不使用参数。
来自:help echo
bash
Options:
-n do not append a newline
-e enable interpretation of the following backslash escapes
如果您想要除 之外的可移植到其他 shell 的东西bash
,请printf
改用:
printf '\n' >>file.txt
printf 'bbbb\n' >>file.txt
或者,通过单个重定向执行这两个语句的另一种方法:
{
printf '\n'
printf 'bbbb\n'
} >>file.txt
或者简单地
printf '\nbbbb\n' >>file.txt
有关的: