2

我正在尝试将多行字符串重定向到文件。该字符串包含特殊字符,如配额,如下所示:

import "this"
import "that"
main() {
    println("some text here");
}

我可以使用echo例如:

echo "import \"this\"
import \"that\"
main() {
    println(\"some text here\");
}" > myfile.txt

这种方法的问题是我需要转义所有配额字符。我想过用cat它来消除逃避的需要。它在交互式 shell 中运行良好,因此我可以键入cat > myfile.txt然后写入我的字符串而无需转义,然后用<control>d.

如何EOF在没有实际键序列的情况下在脚本中进行标记<control>d

4

1 回答 1

8

使用“此处文档”:

cat <<'EOF' > myfile.txt
import "this"
import "that"
main() {
    println("some text here");
}
EOF

初始 'EOF' 周围的引号表示“不要在此处的文档中扩展任何 shell 变量(等)”。

于 2012-09-17T20:47:02.010 回答