【问题标题】:Capturing exit code from sudo-run process从 sudo-run 进程中捕获退出代码
【发布时间】:2012-08-19 02:13:05
【问题描述】:

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

考虑:

ssh $HOST sudo $CMD
echo $?

ssh 可以正常返回返回代码,但即使 $CMD 返回非零退出代码,sudo 在运行命令后仍然返回 0。

如何获取$CMD 的返回码?我非常倾向于将它作为ssh 的返回码传回,但是如果有另一个简单的方法不会被$CMD 的输出混淆,我会全力以赴。

【问题讨论】:

    标签: ssh sudo


    【解决方案1】:

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

    【讨论】:

    • 这里相同 - 我正在回显结果,因此尽管 ssh 正确传递了状态代码,但回显返回 0。
    猜你喜欢
    • 2020-06-20
    • 2014-06-19
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    相关资源
    最近更新 更多