첫 번째 명령 오류 시 xargs를 강제로 중지합니다.

첫 번째 명령 오류 시 xargs를 강제로 중지합니다.

디렉토리에서 모든 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 {}

관련 정보