10

我有一个脚本,我在其中仔细检查错误条件的返回码,以便在发生故障时尽早中止。该脚本的一个步骤涉及root在另一个盒子上以用户身份运行命令,通过sshsudo

考虑:

ssh $HOST sudo $CMD
echo $?

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

如何将返回码捕获到$CMD?我非常倾向于将它作为ssh' 的返回代码传回,但如果有另一种简单的方法不会被 的输出混淆$CMD,我会全神贯注。

4

1 回答 1

9

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

于 2012-08-23T14:39:05.637 回答