来自带有Fabric的文件的远程环境变量

时间:2015-10-09 22:12:26

标签: python fabric

我正在尝试使用Fabric在远程服务器上执行简单的echo $ MYVAR。

环境变量位于远程主机上的〜/ .bashrc文件中。

我试过了:

run("source /home/<myusername>/.bashrc && echo $MYVAR")

这只是打印一个空字符串。在远程计算机上登录时运行它会打印“5”,即bashrc文件中的值。有谁知道为什么会这样?

我需要从远程主机上的文件设置环境变量,而不是由Fabric决定。

我正在以<myusername>运行ssh命令,因此用户名似乎正确。这似乎是this question的副本,除了可能是他们以错误的用户身份运行。我也尝试了shell run参数,没有运气。

我还没有尝试过各种上下文管理器,因为它们似乎只是command1&amp;&amp; amp;的缩写。命令2。

1 个答案:

答案 0 :(得分:1)

首先,as explained in the answer you link to,fabric使用登录shell 交互式shell ,这意味着您的~/.bahsrc不会在遥控器上采购。您应该在~/.bash_profile~/.profile

中导出变量

如果没有远程~/.bashrc的相关内容,则无法确定命令失败的原因。