作者:心悦随鑫_196 | 来源:互联网 | 2023-01-29 19:45
我想在bash脚本中写文本到字面,而不需要修改特殊字符.我搜索一个函数或命令类似于:
echo'line1
line2' > destination/file
但包括文本$'"(等)中的所有特殊字符,而不修改这些字符.
1> William Purs..:
最简单的方法是使用引用的heredoc:
cat <<'EOT' > /path/to/file
Thi$ is text with ' " special chars
that [ spans ] {} multiple lines
EOT
请注意,字符串"EOT"是完全任意的,如果您希望输出中只包含字符串EOT的行,则可以选择不同的分隔符.您还可以堆叠此处的文档,因此如果您想要插入一些变量,您可以执行以下操作:
{ cat <<'EOT'; cat < /path/to/file
This $var will not be interpolated in the output
EOT
But this $var will!
EOF