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

时间:2015-08-29 22:55:33

标签: bash shell unix ssh logout

我正在尝试编写一个小的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

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

1 个答案:

答案 0 :(得分:1)

在您通过SSH连接的远程计算机上运行的脚本无法在您的计算机上执行命令而无需再与您的计算机建立SSH连接(如果您在NAT后面或没有连接,则可能无法选择正在运行的SSH服务器。

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