例如,Makefile如下。只有一个目标“测试”。由于“打开”不是有效的命令,因此第一行将出错。如何将错误信息传输到以下条件指令?
Test:
- open test.doc; ${foo} := $$?
ifeq (foo, 127)
echo "there is a fault"
else
echo "why?"
endif
默认情况下,一旦命令返回非零状态,make将停止处理。您可以通过编写包装器脚本或添加显式SHELL命令以测试返回码来更改此设置]
Test:
- open test.doc ; foo=$$? ; \
if [ "$foo" = 127 ] ; then echo "There is a fault" ; else echo "Why ?" ; fi
替代:
Test:
- open test.doc ; \
if [ "$?" = 127 ] ; then echo "There is a fault" ; else echo "Why ?" ; fi