如何在bash cat`<<'EOF'>`中替换`$ variable`?

时间:2019-01-30 06:38:02

标签: bash

我编写bash cat << 'EOF' >脚本来创建files.script,如下所示:

#!/bin/bash
for sitename in (site1,site2,site3)
    do
    cat << 'EOF' >/home/$sitename/conf
DEPLOY_DIR="/var/www/$sitename"
git --work-tree="DEPLOY_DIR"
EOF
    done

运行此脚本后的结果应为:

[root@localhost]cat home/site1/conf
DEPLOY_DIR="/var/www/site1"
git --work-tree="$DEPLOY_DIR"

是我需要在$sitename中替换DEPLOY_DIR="/var/www/$sitename"并保持git --work-tree="DEPLOY_DIR"不变。
怎么做?

1 个答案:

答案 0 :(得分:1)

#!/bin/bash
for sitename in site1 site2 site3;do
    cat << EOF > /home/$sitename/conf
    DEPLOY_DIR="/var/www/$sitename"
    git --work-tree="\$DEPLOY_DIR"
EOF
done