我正在尝试使用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。
答案 0 :(得分:1)
首先,as explained in the answer you link to,fabric使用登录shell ,不和交互式shell ,这意味着您的~/.bahsrc
不会在遥控器上采购。您应该在~/.bash_profile
或~/.profile
。
如果没有远程~/.bashrc
的相关内容,则无法确定命令失败的原因。