обработка ошибок runuser

Мы используем 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 и т. П.), Я надеюсь найти более элегантный / очевидный способ обработки любых ошибок.

Другая мысль – сделать что-то вроде этого:

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

Linux и Unix - лучшая ОС в мире.