从sudo-run进程中捕获退出代码

Mic*_*Mol 6 ssh sudo

我有一个脚本,我在其中仔细检查错误条件的返回码,以便我可以在发生故障时提前中止.此脚本的一个步骤涉及通过ssh和sudo在另一个盒子上以root身份运行命令.

考虑:

ssh $HOST sudo $CMD
echo $?
Run Code Online (Sandbox Code Playgroud)

ssh传回返回代码就好了,但即使$ CMD返回非零退出代码,sudo仍然在运行命令后返回0.

如何将返回码捕获到$ CMD?我非常偏爱其传递回用ssh的返回代码,但如果有另一种简单的方法,不能用$ CMD的输出相混淆,我所有的耳朵.

Mic*_*Mol 5

事实证明,须藤正确传递返回码.我的测试用例很可能是覆盖$?随后执行或条件测试.我通常使用命名变量来保留$?避免这样的事情,但你有.