0

在我的 bash 脚本中,我这样做:

ssh me9@some_mad_server.com;
cd ~/apple;
echo "Before Exit"
exit
echo "After Exit"

我从来没有看到退出前或退出后。我可以理解为什么我可能看不到 Before Exist,因为我的脚本在那个阶段位于另一个控制台中。但是我很困惑,如果退出意味着我的脚本结束,那么为什么退出后永远不会被记录。

任何帮助表示赞赏。

4

2 回答 2

3

要在远程主机上执行一系列命令,您需要将它们传递给ssh命令行,而不是在调用ssh执行它们。像这样:

ssh me9@some_mad_server.com '
    cd ~/apple
    echo "Before Exit"
'
echo "After Exit"

这使用多行字符串来传递多个命令。exit当到达字符串末尾时,An是隐式的。

重要的是,引用字符串中的命令在远程主机上执行,而最终echo在本地服务器上执行。为了清楚起见,我已经缩进了远程命令。

于 2013-09-04T20:50:10.487 回答
1

您可以为此使用屏幕。

screen -d -m <command>

使用 screen -r 再次附加到该屏幕

screen -r <screen ID>
于 2013-09-04T20:18:47.323 回答