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