쉘 스크립트에서 오류 포착 건너뛰기

쉘 스크립트에서 오류 포착 건너뛰기

프로그램을 컴파일하는 스크립트가 있습니다. 프로그램은 먼저 명령을 사용하여 소스 코드를 컴파일한 configure && make다음 을 사용합니다 make test. 스크립트는 set -e오류를 잡는 데에도 사용됩니다.

이제 내가 원하는 것은 스크립트의 설정을 유지하고 set -e오류가 발생하더라도 스크립트를 계속 실행하는 것입니다. 오류가 발생하더라도 테스트 실행을 make test사용해 보았지만 명령에 걸려 중지됩니다.make -k testset -e

또한 어떤 테스트가 실패할지 알고 있으므로 스크립트에서 이러한 오류 포착을 건너뛰도록 지시할 수 있는 방법이 있습니까?

답변1

make test || true

예를 들어

#!/bin/sh
set -e
echo hello
make test || true
echo done

결과는 다음과 같습니다

hello
make: *** No rule to make target `test'.  Stop.
done

이 경우 실패는 규칙 누락(Makefile 없음 :-)으로 인해 발생하지만 스크립트가 계속되는 것을 볼 수 있습니다.

답변2

set -e플립을 사용할 수 있습니다 set +e.

#!/bin/sh
set -e
configure && make
set +e
make test
...

관련 정보