Kernel
make && echo ‘hello’ 只有在 make 成功時才列印 hello(核心)
對於編譯 linux 核心,如果我這樣做
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
由於管道到
tee
,第二個make
的退出狀態被忽略。要獲得您想要的行為,您需要啟用
pipefail
:將set -xe
行更改為set -xe -o pipefail