我想将一些内容回显到一个包含换行转义序列的文件中,但是我希望它们保持转义状态。 我正在寻找与此问题相反的解决方法。
echo "part1\npart2" >> file
我希望您能在文件中让我看起来像这样。Translated: "I hope you can make me look like this in the file."
$ cat file
old
part1\npart2
但看起来好像
$ cat file
old
part1
part2
printf
而不是 echo
的好例子(参见 此处,在“应用用法”下):您不知道使用 echo
会得到什么1。echo
echo
具有一个 -e
选项,用于启用反斜杠转义解释并检查 xpg_echo
shell 选项echo
/bin/echo
:这可能取决于使用的是哪个版本。GNU Coreutils 的 echo
理解 -e
选项,就像 Bash 内置的一样因此,为了使解决方案具有可移植性,我们可以使用应支持以下操作数:
string
要写入标准输出的字符串。如果第一个操作数是-n
,或者任何操作数包含一个<backslash>
字符,则结果是实现定义的。
printf
:printf '%s\n' 'part1\npart2' >> file
在格式字符串中的\n
会始终被解释,而参数中的\n
将永远不会被解释,结果是
part1\npart2
被附加到file
。
1 要了解有关echo
和printf
的各种行为的详尽概述,请参见in-ulm.de上的echo(1)和printf(1)。
echo
版本是什么? - chrkiecho
吗? - user933161printf '%s\n' 'part1\npart2' >> file
。 - Benjamin W.