我的另一个问题在这里 Assign variable from SSH server to local machine variable从未成功回答过,我不确定如何“碰撞”问题以获得更多 View ,但如何将本地变量的值设置为 ssh 服务器上变量的值?
#!/bin/sh
ssh_cmd="ssh-t -o StrictHostKeyChecking=no -o ControlPath=~/.ssh/master-$$ -o ControlMaster=auto -o ControlPersist=10"
local_var=""
$ssh_cmd user@server " server_var=\"test\" "
local_var=$($ssh_cmd user@server 'echo $server_var')
echo $local_var
这将导致空值。
编辑
我正在使用 ssh 连接共享,我认为整个 session (连同连接是共享的),因此我正在建立一个初始连接并设置变量,然后重新连接到该 session 以回显变量放。
我在 ssh 服务器上有一个程序可以检索虚拟机的 IP 地址。我的本地脚本需要这个地址,以便我从我的本地脚本对虚拟机运行一些东西。
ssh 服务器不仅仅可以获取 IP 地址,而且我需要在本地脚本中了解这一功能。
最佳答案
通常不可能(忽略调试器技巧)在正在运行的进程的地址空间中找出变量的值,除非该进程明确共享它。它可以将值写入磁盘,您可以从另一个进程读取该文件(在本地运行,或通过 ssh
)。
关于linux - 如何将局部变量设置为 ssh 服务器上的变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16969456/