带有 heredoc 的脚本中的环境变量

带有 heredoc 的脚本中的环境变量

脚本:t1.sh

DEST=`mktemp -d`
echo "DEST=$DEST"

脚本:t2.sh

sudo -s <<EOF
DEST=`mktemp -d`
echo "DEST=$DEST"
EOF

调用t1.sh(有或无)sudo

$ bash t1.sh
DEST=/tmp/tmp.3PxGIYutDj

$ sudo bash t1.sh
DEST=/tmp/tmp.GpYT3fApCW

调用t2.sh

$ bash t2.sh
DEST=

为什么$DEST没有设置变量t2.sh?顺便说一句,我正在使用 Debian 10。

答案1

我找到了问题所在。引用分隔符:

sudo -s <<"EOF"
DEST=`mktemp -d`
echo "DEST=$DEST"
EOF

相关内容