Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个脚本,我在其中仔细检查错误条件的返回码,以便在发生故障时尽早中止。该脚本的一个步骤涉及root在另一个盒子上以用户身份运行命令,通过ssh和sudo。
root
ssh
sudo
考虑:
ssh $HOST sudo $CMD echo $?
ssh将返回代码传回就好了,但即使$CMD返回非零退出代码,sudo运行命令后仍返回 0。
$CMD
如何将返回码捕获到$CMD?我非常倾向于将它作为ssh' 的返回代码传回,但如果有另一种简单的方法不会被 的输出混淆$CMD,我会全神贯注。
事实证明,正确sudo 地传递了返回码。我的测试用例很可能被$?后续执行或条件测试覆盖。我通常使用命名变量来保存$?以避免这样的事情,但是你在那里。
$?