这个问题在这里已经有了答案:
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/