我有一个脚本,我在其中仔细检查错误条件的返回码,以便我可以在发生故障时提前中止。此脚本的一个步骤是通过ssh和sudo在另一个盒子上以root身份运行命令。
考虑:
ssh $HOST sudo $CMD
echo $?
ssh传回返回代码就好了,但即使$ CMD返回非零退出代码,sudo在运行命令后仍然返回0。
如何将返回码捕获到$ CMD?我非常偏爱它作为ssh的返回代码被传回,但是如果有另一个简单的方法不能被$ CMD的输出混淆,我就全都听了。
答案 0 :(得分:5)
事实证明,sudo 正在正确传递返回代码。我的测试用例很可能是覆盖$?随后执行或条件测试。我通常使用命名变量来保留$?避免这样的事情,但你有。