.bashrc中设置的Fabric环境变量不可用
我正在使用Fab来部署我的应用程序。我的应用程序运行需要一些环境变量,这些变量是在$HOME/.bashrc文件中设置的。但是,当我用下面的命令通过fab来运行应用程序时,
run("java -jar app.jar")
这个应用程序没有按照预期运行,因为我在$HOME/.bashrc中设置的环境变量,比如SMTP_HOST和SMTP_PORT,对这个应用程序来说是不可用的。
我在$HOME/.bashrc中设置的环境变量如下:
export SMTP_PORT=abc
我该如何确保在执行run()命令来运行应用程序之前,这些环境变量已经被设置好呢?
1 个回答
13
你可以在 .bashrc
文件中找到以下几行:
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
这意味着在那段代码之后,fabric 将永远不会再读取代码,因为 fabric 以非交互式的方式运行你的命令(形式是 /bin/bash -l -c some_command
)
所以一个简单的解决办法就是把 export SMTP_PORT=abc
移到 .bash_profile
或 .profile
文件中。