bash - 嵌套的 EOF

bash - nested EOF

我正在尝试使用

创建文件
cat - << EOF > file.sh

但是在这里面,我想再写一个EOF。很难解释,所以这里有一个例子:

cat - << EOF > file1.sh
echo first
cat - << EOF > file2.sh
echo second
EOF
echo again first
EOF

当然,在第 5 行它中断了。它不使用内容行 2-6 创建 file1.sh,而是使用内容行 2-4.

只需在外层猫上使用不同的分隔符,"EOF" 与 shell:

没有任何特殊之处
cat - << REALEND > file1.sh
echo first
cat - << EOF > file2.sh
echo second
EOF
echo again first
REALEND

此内容的结果在 file1.sh

echo first
cat - << EOF > file2.sh
echo second
EOF
echo again first