디렉토리에서 모든 make 파일을 찾아 실행하는 명령을 실행하고 있습니다 make build
.
xargs
첫 번째 실패에서 멈추고 싶습니다 make build
.
이것이 지금까지 나의 명령이다.
$ find . -name "Makefile" | xargs dirname | xargs -I {} make -C {} build
문제는 xargs
실패하더라도 계속 진행된다는 것입니다 make build
. 최종 상태 코드를 확인해보면 아래와 같습니다.
$ echo $?
123
맨 페이지를 확인할 때. 그것이 바로 그 내용입니다.
123 if any invocation of the command exited with status 1-125
그 중 일부는 make build
출구 1이나 다른 이유로 실패하기 때문에 이는 의미가 있습니다.
xargs
첫 번째 오류가 발생하면 중지 할 수 있는 방법이 있나요 make build
?
답변1
XARGS(1):
이 명령의 호출이 상태 255로 종료되면 xargs는 추가 입력을 읽지 않고 즉시 중지됩니다.
서브쉘을 사용하여 다음을 반환할 수 있습니다 255
.
find . -name "Makefile" | xargs dirname | \
xargs -I {} sh -c 'make -C "$1" build || exit 255' sh {}