![make && echo "hello"는 make가 성공한 경우에만 hello를 인쇄합니다(커널)](https://linux55.com/image/206682/make%20%26amp%3B%26amp%3B%20echo%20%22hello%22%EB%8A%94%20make%EA%B0%80%20%EC%84%B1%EA%B3%B5%ED%95%9C%20%EA%B2%BD%EC%9A%B0%EC%97%90%EB%A7%8C%20hello%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4(%EC%BB%A4%EB%84%90).png)
리눅스 커널을 컴파일하려면,
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