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