【问题标题】:bash - nested EOFbash - 嵌套的 EOF
【发布时间】:2020-02-14 16:27:01
【问题描述】:

我正在尝试使用

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”。

标签: bash shell heredoc


【解决方案1】:

只需在外层 cat 上使用不同的定界符,“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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-22
    • 1970-01-01
    • 2020-12-15
    • 2018-05-07
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    相关资源
    最近更新 更多