gsi*_*011 7 diff makefile termination
我的C++项目的makefile的一部分使用diff命令来比较最近构建的代码输出的两个文件.问题是如果文件不同,脚本就不会失败并且应该继续.有更多的文件需要比较,我需要在构建脚本结束之前看到它们.例如,像这样的东西,
diff: *
diff $(TEST)/T4.board $(TEST)/T4.board
diff $(TEST)/T4.board $(TEST)/sample.board
Run Code Online (Sandbox Code Playgroud)
第一行没有问题,因为文件是相同的.第二行比较不同的文件,一旦显示差异,我明白了
Makefile:102: recipe for target `diff' failed
make: *** [diff] Error 1
Run Code Online (Sandbox Code Playgroud)
并且脚本停止了.我怎样才能让它继续下去?
正如GNU在第5.5节"错误"中所述的手动状态,您可以通过在命令前添加前缀来忽略命令的返回状态-:
diff: *
-diff $(TEST)/T4.board $(TEST)/T4.board
-diff $(TEST)/T4.board $(TEST)/sample.board
Run Code Online (Sandbox Code Playgroud)
让您的整个食谱不会返回错误:
diff: *
diff $(TEST)/T4.board $(TEST)/T4.board || exit 0
diff $(TEST)/T4.board $(TEST)/sample.board || exit 0
Run Code Online (Sandbox Code Playgroud)
可以用echo 'Files differ'而不是exit 0.
| 归档时间: |
|
| 查看次数: |
3466 次 |
| 最近记录: |