我有一个构建脚本,在某些时候,我会调用make -j4
。不过,我不想每次都看到它的全部输出;除非出现错误。那么,如果它返回非零结果,我如何缓冲make的输出并打印它呢?
答案 0 :(得分:2)
将输出保存在变量中 - 并在出错时打印
cmdout=$(make -j4 2>&1)
es=$?
if ((es)); then
echo >&2 "make error es $es: \"$cmdout\""
else
echo "make success"
fi
答案 1 :(得分:1)
将输出保存到临时文件
tmp=$(mktemp)
make -j4 &> "$tmp"
并且仅在出现错误时显示
if (( $? )) ; then
cat "$tmp"
fi
rm "$tmp"