首页 > fabric 环境问题

fabric 环境问题

用fabric执行命令,在.bashrc里面export的环境变量无法加载?有解决方案吗?
fab代码如下:

from fabric.api import *
env.shell="/bin/bash -l -c"
env.hosts=['user@ip']
def test_run():
      with prefix('source ~/.bashrc'):   
                run('echo $PATH')

远程服务器上.bashrc有如下配置:

export JAVA_HOME=~/jdk1.7.0_75
export PATH=$PATH:${JAVA_HOME}/bin

fabric执行 echo $PATH 没有java相关的配置

我发现一些猫腻了,debian home下面有个.profile这个配置文件,在里面配置的export环境变量可以被fabric加载,太奇怪了。我直接ssh上去可以自动加载.bashrc里面的export变量,晕菜了。


with prefix('source ~/.bashrc'):
        run('touch a_file')

Context Managers — Fabric documentation http://docs.fabfile.org/en/1.10/api/core/context_managers.html

【热门文章】
【热门文章】