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

Bou*_*rne 5 python deployment bash fabric python-2.7

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

run("java -jar app.jar")
Run Code Online (Sandbox Code Playgroud)

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

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

export SMTP_PORT=abc
Run Code Online (Sandbox Code Playgroud)

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

lao*_*yur 10

您可以在以下位置找到以下内容.bashrc:

# If not running interactively, don't do anything
case $- in
    *i*) ;;
      *) return;;
esac
Run Code Online (Sandbox Code Playgroud)

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

因此简单的解决方法是移动export SMTP_PORT=abc.bash_profile.profile