运行用户错误处理

运行用户错误处理

runuser我们在一些部署脚本中使用。在查看脚本时,我想知道如果runuser步骤中的任何命令出错,错误处理将如何工作。在尝试自己解决这个问题时,除了&&这样使用之外,我没有想出任何明确的方法:

#!/bin/bash -e

echo "- next"
# this is what we're currently doing, which appears to not handle errors
runuser -l $USER -c "echo cmd2; ls non-existant-file; echo done";
echo "  exit code $?"

echo "- next2"
# best solution I've come up with so far
runuser -l $USER -c "echo cmd2 && ls non-existant-file && echo done";
echo "  exit code $?"

echo "- finish"

对于如何更好地解决这个问题有什么建议吗?鉴于脚本中的一些单独命令runuser可能会非常复杂(即条件等),我希望找到一种更优雅/明显的方法来处理任何错误。

另一个想法是做这样的事情:

runuser -l $USER -c "echo cmd2 && ls non-existant-file && echo done" || exit 1

相关内容