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

时间:2012-08-23 14:16:08

标签: ssh sudo

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

考虑:

ssh $HOST sudo $CMD
echo $?

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

如何将返回码捕获到$ CMD?我非常偏爱它作为ssh的返回代码被传回,但是如果有另一个简单的方法不能被$ CMD的输出混淆,我就全都听了。

1 个答案:

答案 0 :(得分:5)

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