Ssh 从sudo运行进程捕获退出代码
我有一个脚本,其中我正在仔细检查返回代码的错误情况,以便在出现故障时尽早中止。此脚本的一个步骤涉及通过Ssh 从sudo运行进程捕获退出代码,ssh,sudo,Ssh,Sudo,我有一个脚本,其中我正在仔细检查返回代码的错误情况,以便在出现故障时尽早中止。此脚本的一个步骤涉及通过ssh和sudo以root用户身份在另一个框中运行命令 考虑: ssh $HOST sudo $CMD echo $? ssh可以很好地返回返回代码,但即使$CMD返回非零退出代码,sudo在运行命令后仍然返回0 如何将返回代码捕获到$CMD?我非常倾向于将其作为ssh的返回代码传回,但是如果有另一个简单的方法不能被$CMD的输出所混淆,我洗耳恭听。事实证明,sudo正确地传递了返回代码。我的
ssh
和sudo
以root
用户身份在另一个框中运行命令
考虑:
ssh $HOST sudo $CMD
echo $?
ssh
可以很好地返回返回代码,但即使$CMD
返回非零退出代码,sudo
在运行命令后仍然返回0
如何将返回代码捕获到
$CMD
?我非常倾向于将其作为ssh
的返回代码传回,但是如果有另一个简单的方法不能被$CMD
的输出所混淆,我洗耳恭听。事实证明,sudo
正确地传递了返回代码。我的测试用例很可能是用后续执行或条件测试覆盖了$?
。我通常使用一个命名变量来保留$?
以避免发生这种情况,但这里有相同的情况。我在回显结果,因此尽管ssh正确地传递了状态代码,但回显返回0。