- 主题:remote机的环境变量
remote machine已经定义了一个环境变量,如MYPWD
现在local machine上执行:ssh xxx@remot_machine "echo $MYPWD",无法获得MYPWD的正确值,尝试ssh xxx@remot_machine "source ~/.bashrc echo $MYPWD"也不起作用;
这是怎么回事,如何解决?
(应用场景是local机调用一个remote机的代码,代码依赖一个在remote机上已定义的环境变量,目前这种应用会提示没有这个环境变量,但如果直接在remote机上运行是没有问题的)
--
FROM 210.41.233.*
这种调用也没用:ssh xxx@remot_machine "export MYPWD=1234 echo $MYPWD"
现在是远端代码里使用了os.environ['MYPWD']这种代码(远端已经定义了MYPWD),但在locall端调用时,MYPWD这个环境变量不生效,也无法传过去
【 在 newre 的大作中提到: 】
: 通过脚本调应用。环境变量放脚本里
:
: #发自zSMTH@如有雷同 纯属巧合
--
FROM 210.41.233.*
直接登录remote端,是可以正常运行的;从local ssh到remote后,也是可以正常运行的;
但在本地ssh+运行一体化,就找不到remote的环境变量
【 在 Turningpt 的大作中提到: 】
: 同样的代码,ssh到本地可以用吗?
--
FROM 210.41.233.*
算了,看不懂man
【 在 JulyClyde 的大作中提到: 】
: man bash 搜INVOCATION
--
FROM 112.193.113.*
这可能是个思路,从ssh管理的角度,但我没试
我最终设置了一个本地环境变量,然后本地取出,作为一个参数发到远端机去使用。
【 在 poocp 的大作中提到: 】
: 帮你向Bing问了一下,不过我现在没环境还没试行不行,你有兴趣可以试试。
: [upload=1][/upload]
--
修改:DragonDon FROM 112.193.113.*
FROM 112.193.113.*
这个方法不行哈
【 在 iwannabe 的大作中提到: 】
: try
: ssh xxx@remot_machine "echo \$MYPWD"
: or
: ...................
--
FROM 112.193.113.*
这个方法不行哈
【 在 ensonmj 的大作中提到: 】
: ssh remote cmd这种格式默认不分配伪终端,可能连登陆shell也不执行,试试 ssh -T remote cmd
--
FROM 112.193.113.*
试了一下你这个确实工作
猜想是全局的环境变量可以,但局部的环境变量不行
【 在 iwannabe 的大作中提到: 】
: $ ssh root@192.168.10.254 echo \$PATH
: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
: $ echo $PATH
: ...................
--
FROM 210.41.233.*