我正在一台机器上执行 ssh 并执行某些命令。
我的最后一个命令给了我一个本地脚本所需的变量。但是,从计算机注销后如何访问该变量?
编辑:请假设我已经登录到机器。
答案1
您可以将远程执行的命令的输出捕获到客户端计算机上的本地变量中。
myvar="foo"
echo "$myvar"
myvar=$(ssh user@hostname 'myvar="bar"; echo $myvar')
echo "$myvar"
请注意远程命令周围的单引号:'myvar="bar"; echo $myvar'
。这可以防止 shell$myvar
在将命令发送到远程主机进行评估之前在本地扩展。
答案2
取决于你想怎么做。自动获取交互式会话中单个命令的输出并不容易。您当然可以复制并粘贴终端的输出。但是您也可以将输出保存到远程上的文件中,然后执行类似的操作var=$(ssh remote "cat file.with.var")
,或者运行类似地生成最终输出的命令:var=$(ssh remote "somecommand")
。
或者,如果您想直接从交互式会话中执行此操作,您可以安装一个 Expect 脚本来执行此操作。