我的MakeFile中的代码:
for i in $(SUBDIRS); do \
($(MAKE) -C $$i) || (exit $$? && rm -rf bin); \
done
如果子品牌出现错误,我需要删除bin
目录。如何一起执行它,即如何同时启动exit $$?
和rm -rf bin
?现在仅执行exit $$?
。
答案 0 :(得分:1)
()
内正在运行的退出将不会退出,因为它正在子外壳中运行。使用{}
。请参阅https://www.gnu.org/software/bash/manual/html_node/Command-Grouping.html(此页面适用于bash,但是sh与此方式相同。)示例:
SUBDIRS := $(wildcard */.)
all:
@for i in $(SUBDIRS); do \
$(MAKE) -C $$i || { RETVAL=$$?; rm -rf bin; exit $$RETVAL; }; \
done