【发布时间】:2021-06-07 17:27:10
【问题描述】:
具体来说:
make --directory=$1/build
if [ $? -eq 1 ]; then
echo "Bad build"
exit 1
else
echo "Good build"
fi
当它实际失败时,它不会“失败”。如果重要的话...makefile 由 CMake 生成。
【问题讨论】:
-
仅供参考,使用
-q退出 1 和 >1 用于任何其他故障是由make的 POSIX 标准强制要求的,因此所有标准 make 的行为方式都是这样。一般来说,在 POSIX 中,测试准确的错误代码是错误的,除非您已阅读文档并希望区分不同的错误。假设有一种成功的方法和多种失败的方法,因此退出代码0表示成功,而任何其他退出代码表示错误。如果您只想知道“它是否有效”,您应该比较$? -ne 0(或下面答案中的 if-condition),而不是$? -eq 1。