Shell脚本,用于检查环境变量值的if语句

Shell脚本,用于检查环境变量值的if语句,shell,environment-variables,Shell,Environment Variables,我有一个shell脚本需要更改,以便只在环境变量的值为true时才工作。变量将来自Heroku,如果这很重要的话 我的脚本看起来像: if [[ $SANDBOX_SITE = "true" ]] then *run existing script* else exit fi 我可以看到环境变量出现在printenv中,我通过heroku run bash--app*appname*运行脚本,因此我知道它在正确的shell中。 如有任何提示或建议,将不胜

我有一个shell脚本需要更改,以便只在环境变量的值为
true
时才工作。变量将来自Heroku,如果这很重要的话

我的脚本看起来像:


if [[ $SANDBOX_SITE = "true" ]]
then
    *run existing script*
else 
    exit
fi
我可以看到环境变量出现在
printenv
中,我通过
heroku run bash--app*appname*
运行脚本,因此我知道它在正确的shell中。 如有任何提示或建议,将不胜感激

*编辑

我忘了添加,脚本每次都会退出。

您可能忘了导出环境变量。环境变量可能存在于当前shell中,但如果未导出,则子shell将无法使用该环境变量。使用:

export SANDBOX_SITE="true"

我从来没有使用过Heroku,但是快速浏览一下文档意味着您需要显式地设置所需的env变量。例如,
heroku运行bash--env SANDBOX\u SITE=$SANDBOX\u SITE--app appname
。或者,可能通过
heroku config:set
命令


请参见执行此脚本时会发生什么?@LasseV.Karlsen每次都会退出。我还在if的每个部分中放置了一些
echo
,即使heroku上存在变量,它也肯定会退出。