我使用Fab来部署我的应用程序。我的应用程序的运行取决于$ HOME / .bashrc中设置的一些环境变量。但是,当我使用fab使用以下命令运行应用程序时
run("java -jar app.jar")
此应用程序未按预期运行,因为$ HOME / .bashrc中设置的SMTP_HOST,SMTP_PORT I等环境变量不适用于此应用程序?
我在$ HOME / .bashrc中设置了env变量,如下所示
export SMTP_PORT=abc
在执行run()命令运行应用程序之前,如何确保设置环境变量?
答案 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