사용자 오류 처리 실행

사용자 오류 처리 실행

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

관련 정보