在我的 bash 脚本中,我这样做:
ssh me9@some_mad_server.com;
cd ~/apple;
echo "Before Exit"
exit
echo "After Exit"
我从来没有看到退出前或退出后。我可以理解为什么我可能看不到 Before Exist,因为我的脚本在那个阶段位于另一个控制台中。但是我很困惑,如果退出意味着我的脚本结束,那么为什么退出后永远不会被记录。
任何帮助表示赞赏。
要在远程主机上执行一系列命令,您需要将它们传递给ssh
命令行,而不是在调用后ssh
执行它们。像这样:
ssh me9@some_mad_server.com '
cd ~/apple
echo "Before Exit"
'
echo "After Exit"
这使用多行字符串来传递多个命令。exit
当到达字符串末尾时,An是隐式的。
重要的是,引用字符串中的命令在远程主机上执行,而最终echo
在本地服务器上执行。为了清楚起见,我已经缩进了远程命令。
您可以为此使用屏幕。
screen -d -m <command>
使用 screen -r 再次附加到该屏幕
screen -r <screen ID>