linux - 如何将局部变量设置为 ssh 服务器上的变量值

标签 linux shell unix

我的另一个问题在这里 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/

相关文章:

regex - 如何用单个空格替换换行符/换行符,但前提是它们在开始/结束正则表达式中?

unix - 使用 sed 更改/etc/fstab

multithreading - 多线程 perl 脚本中的 Control+C 处理

c++ - Visual Studio : Intellisense Problems and Linux Compatibility

linux - 使用 vim 作为命令行工具?

regex - sed 正则表达式 最后一场比赛

python - 在 Windows 计算机上从 Python 运行 Linux 命令

linux - 如何使用 git 提取提交者的电子邮件?

bash - 更改 ffmpeg 输出目录

shell - 未找到 neo4j-shell-tools、neo4j-shell 自动索引和导入命令