【发布时间】:2017-08-20 04:32:16
【问题描述】:
我想检查exit 命令是否在 ssh 会话中成功执行。
我的第一次尝试是使用命令exit && echo $? || echo $?。echo $? || echo $?,如果退出成功,它应该打印 0。
问题是echo never execute if exit execute success 因为连接断开并且后面的命令丢失。
我的第二次尝试是将命令拆分为两个命令,如下所示:
$ exit
$ echo $?
如果exit执行成功,echo $?应该是0。
但是另一个问题是echo $? 可能会被吞掉,因为它发送得太快以至于在exit 被执行之前就到达了远程ssh 主机。
那么,如何确保exit 在发送下一条命令之前在远程主机上执行?
更新
使用阶段是我以程序语言执行shell命令并通过ssh管道流发送消息。所以,我不知道退出命令执行时间。如果退出命令未完成,我的后续命令将被吞掉,因为它们发送到退出的主机。
这就是为什么我关心执行的退出命令。
【问题讨论】: