在.bashrc中设置的Fabric环境变量不可用

时间:2014-08-25 04:06:53

标签: python bash python-2.7 deployment fabric

我使用Fab来部署我的应用程序。我的应用程序的运行取决于$ HOME / .bashrc中设置的一些环境变量。但是,当我使用fab使用以下命令运行应用程序时

run("java -jar app.jar")

此应用程序未按预期运行,因为$ HOME / .bashrc中设置的SMTP_HOST,SMTP_PORT I等环境变量不适用于此应用程序?

我在$ HOME / .bashrc中设置了env变量,如下所示

export SMTP_PORT=abc

在执行run()命令运行应用程序之前,如何确保设置环境变量?

1 个答案:

答案 0 :(得分:10)

您可以在.bashrc中找到以下行:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac

这意味着结构将在该块之后从不源代码,因为结构运行您的命令非交互式(以/bin/bash -l -c some_command的形式)

所以简单的解决方法是将export SMTP_PORT=abc移至.bash_profile.profile