所以,我现在有这个:
TEST = "?"
oktest:
@-/bin/false && ([ $$? -eq 0 ] && echo "success!") || true; $(eval TEST = "all ok")
@echo $(TEST)
badtest:
@-/bin/false && ([ $$? -eq 0 ] && echo "success!") || true; $(eval TEST = "got error")
@echo $(TEST)
@T=echo;if [ $(TEST) = "got error" ]; then \
echo "some error detected, cleanup env and fail test"; \
/bin/false; \
fi
all: oktest badtest
如您所见,它基于:
有没有办法缩短它,保存返回的错误代码并将其与运行时的已知值进行比较 - 而不回退到嵌入式shell代码或外部脚本?