ssh - 从sudo运行过程中捕获退出代码

标签 ssh sudo

我有一个脚本,在其中我会仔细检查返回代码中是否存在错误情况,以便在发生故障时可以提早中止操作。该脚本的一个步骤涉及通过rootssh在另一个盒子上以sudo用户身份运行命令。
考虑:

ssh $HOST sudo $CMD
echo $?
ssh将返回代码传递回来也很好,但是即使$CMD返回非零退出代码,运行命令后sudo仍然返回0。
如何捕获返回码到$CMD?我非常喜欢将其作为ssh的返回代码传递回去,但是如果还有另一种简单的方法不能与$CMD的输出混淆,那么我非常高兴。

最佳答案

事实证明,sudo正确传递了返回码。我的测试用例很可能是在随后的执行或条件测试中覆盖$?。我通常使用一个命名变量来保存$?以避免此类情况,但是您已经到了。

关于ssh - 从sudo运行过程中捕获退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12093721/

相关文章:

git - 我从 .ssh 文件夹中删除了 known_hosts 文件,但无法 pull 入或推送 BitBucket 存储库

python - 使用 root 权限从 python 脚本调用 shell 脚本

linux - 为什么我在 bash 中的 sudo 命令不能通过 crontab 执行?

bash - sudo -u(用户)cmd 在 bash 脚本中不起作用

linux - cmake 找不到 sudo

authentication - vagrant 默认以 root 身份登录

python - 如何向CentOS服务器上的其他用户授予虚拟环境的访问权限

linux - Rhel 中的每个命令都会返回错误

django - 使用 django 通过 SSH 隧道连接到远程服务器

sudo - su 将密码传递给脚本