【问题标题】:Shell script, if statement to check value of environment variableShell脚本,if语句检查环境变量的值
【发布时间】:2020-11-05 14:48:09
【问题描述】:

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

我的脚本如下所示:


if [[ $SANDBOX_SITE = "true" ]]
then
    *run existing script*
else 
    exit
fi

我可以看到printenv 存在环境变量,我通过heroku run bash --app *appname* 运行脚本,所以我知道它在正确的shell 中。 任何提示或建议将不胜感激。

*编辑
忘了补充,脚本每次都退出。

【问题讨论】:

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

标签: shell environment-variables


【解决方案1】:

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

export SANDBOX_SITE="true"

【讨论】:

    【解决方案2】:

    我从未使用过 Heroku,但快速浏览一下文档意味着您需要明确设置所需的环境变量。例如,heroku run bash --env SANDBOX_SITE=$SANDBOX_SITE --app appname。或者,可能通过heroku config:set 命令。

    https://devcenter.heroku.com/articles/heroku-cli-commands#heroku-run

    【讨论】:

      猜你喜欢
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-16
      • 2013-09-04
      • 2012-08-22
      • 1970-01-01
      • 2015-09-16
      • 1970-01-01
      相关资源
      最近更新 更多