bash - 在heredoc中禁用命令替换?

标签 bash shell heredoc

这个问题在这里已经有了答案:





How to cat <<EOF >> a file containing code?

(5 个回答)


7 个月前关闭。




如何在 EOF 中禁用命令替换继承人?

#!/bin/bash
executableFile="executableFile.sh"
firstFolder="blablabla"
cat <<EOF >$executableFile
    secondFolder="blablabla2"
    if [ \$(cat something) == "blub" ]; then
        echo $firstFolder
        echo $secondFolder
    fi
EOF
执行executableFile时应请求if子句中的值

最佳答案

报价'EOF'将禁用所有特殊字符并按字面处理heredoc。

cat <<'EOF' >$executableFile
    secondFolder="blablabla2"
    if [ $(cat something) == "blub" ]; then
        echo $firstFolder
        echo $secondFolder
    fi
EOF
我也推荐 double quoting all variable expansions .这并不总是必要的,但通常是必要的,这只是一个好习惯。
cat <<'EOF' >"$executableFile"
    secondFolder="blablabla2"
    if [ "$(cat something)" == "blub" ]; then
        echo "$firstFolder"
        echo "$secondFolder"
    fi
EOF

关于bash - 在heredoc中禁用命令替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65899041/

相关文章:

bash - 错误/非法格式或缺少 URL - 在自定义 curl 中传递变量值

接受多个参数的 Bash CLI

shell - 如何理解 ${CONFIG+x} 中的 x

php - 为什么这些Heredoc和Nowdoc会出错呢?

php - 从数据库检索详细信息时以及使用heredoc语法时出现解析错误

bash - 今天的日期,在 shell 脚本中减去 X 天

bash - tmux new-window ssh 到远程主机,然后执行命令并保持登录状态

linux - 如何跟踪后台运行的shell脚本?

linux - 如何删除超过 (n) 天的文件,但保留 (n) 个文件,无论其年龄如何?

shell - 是否可以在 unix bash 脚本中嵌套 Here Document?