Para compilar o kernel linux, se eu fizer
make_runner.sh && echo "hello"
ele imprime olá mesmo se alguma compilação do kernel falhar.
Existe uma maneira de imprimir apenas se todos os destinos de compilação forem criados corretamente?
Onde make_runner.sh
está o seguinte:
#!/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
Por causa do pipe to
tee
, omake
status de saída do segundo é ignorado.Para obter o comportamento desejado, você precisa habilitar
pipefail
: altere aset -xe
linha paraConsulte Depurando scripts, qual é a diferença entre -x para definir -euxo pipefail? para detalhes.