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