make && echo "hello"는 make가 성공한 경우에만 hello를 인쇄합니다(커널)

make && echo "hello"는 make가 성공한 경우에만 hello를 인쇄합니다(커널)

리눅스 커널을 컴파일하려면,

make_runner.sh && echo "hello"

일부 커널 컴파일이 실패하더라도 hello가 인쇄됩니다.

모든 컴파일 대상이 올바르게 빌드된 경우에만 인쇄할 수 있는 방법이 있습니까?

make_runner.sh다음은 어디에 있습니까?

#!/usr/bin/env bash
set -xe
make O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- vendor/citrus-perf_defconfig
make O=out ARCH=arm64 CC=clang CLANG_TRIPLE=aarch64-linux-gnu- -j$(nproc --all) 2>&1 | tee kernel.log

답변1

에 대한 파이프로 인해 tee두 번째 파이프의 종료 상태는 make무시됩니다.

원하는 동작을 얻으려면 활성화해야 합니다.pipefail: set -xe줄을 다음으로 변경하십시오.

set -xe -o pipefail

바라보다스크립트 디버깅, -x와 -euxo Pipelinefail 설정의 차이점은 무엇입니까?더 알아보기.

관련 정보