SSH执行远程命令未返回正确退出码问题求助
问题
执行以下命令后,得到的退出码是0,但预期应该是1:
$ ssh remotehost "exit 1" $ echo $? 0
为什么会出现这种情况?
解决方案
当前环境中的ssh并非系统原生的ssh命令,而是一个自定义函数。这个函数在完成ssh远程调用后,还执行了其他额外命令,导致最终的退出码被后续命令的结果覆盖了。
直接调用系统原生的ssh二进制文件即可得到正确的退出码:
$ /usr/bin/ssh remotehost "exit 1" $ echo $? 1
内容的提问来源于stack exchange,提问作者t777
相关产品推荐
相关产品推荐

