如何退出 ssh 会话并在 shell 脚本的最后一个 shell 上执行命令?

How to exit from ssh session and execute commands on the last shell from a shell script?

我正在尝试编写一个小 shell 脚本。它应该退出当前的 ssh 会话,但之后在我的本地计算机上执行命令。我不知道那是否可能。情况如下:我修改了一个项目,在我的构建服务器上测试并构建它。当我启动脚本时,我会在我的构建服务器上,并且我会修改和测试项目。现在我想要一个脚本来加速编译项目并将其安装在我的本地计算机上的过程。要手动执行此操作,我基本上会执行以下操作:

user@buildserver:~$ ./build project
user@buildserver:~$ exit
user@localcomputer:~$ scp buildserver:/home/user/project/binary /tmp
user@localcomputer:~$ /home/user/install /tmp/binary

到目前为止我唯一能做的就是通过在 s shell 脚本中调用 logout 退出 ssh 会话。

您通过 SSH 连接到的远程计算机上的脚本 运行 无法在您的计算机上执行命令,除非与您的计算机建立进一步的 SSH 连接(如果您落后,这可能不是一个选项NAT 或没有 SSH 服务器 运行).

一种可能的替代方法是在您的计算机上安装一个脚本,通过 SSH 在远程计算机上运行 shell 脚本;一旦该远程脚本完成,本地 SSH 客户端将退出,您的本地脚本可以继续退出任何需要的本地命令。