Shell Makefile:捕获规则中的错误代码,忽略错误,根据错误代码做出决策
所以,我现在有这个:Shell Makefile:捕获规则中的错误代码,忽略错误,根据错误代码做出决策,shell,makefile,Shell,Makefile,所以,我现在有这个: TEST = "?" oktest: @-/bin/false && ([ $$? -eq 0 ] && echo "success!") || true; $(eval TEST = "all ok") @echo $(TEST) badtest: @-/bin/false && ([ $$? -eq 0 ] && echo "success!") || true; $(eval TE
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
如您所见,其依据是:
忽略错误代码-和| | true,两者都可以,但我更喜欢这种方式
使用shell代码进行运行时比较。
正在中止,shell命令返回false。
有没有一种方法可以使它更短,保存返回的错误代码,并在运行时将其与已知值进行比较,而不返回到嵌入的shell代码或外部脚本?这两种$eval。。。调用是以shell返回代码为条件的。我不确定我是否完全理解您在这里尝试执行的操作。你有更现实的场景可以展示吗?