如何在不修改文本本身且没有转义序列的情况下回显包含 $、!、' 和 " 等字符的文本?

How can I echo some text that contains characters such as $, !, ' and " without modyfing the text itself, with no escape sequences?

我正在努力实现的一个例子:

echo "BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/..')}"" >> somefile.txt

我想要“somefile.txt”内最外层引号中的整个文本,而不必使用转义序列对其进行修改。我不介意使用 echo.

以外的其他东西

感谢任何意见。 ;-)

您可以使用“此处文档”:

cat >> somefile.txt << "EOF"
BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/..')}"
EOF

您可以做的一件简单的事情就是使用单引号。这样,特殊字符将被视为文字字符。看看 here.

echo 'BSPDIR := "${@os.path.abspath(os.path.dirname(d.getVar('FILE', True)) + '/..')}"'