脚本: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