shell 循环
以下代码实现与上面同样的功能, 该版本的循环, 在多平台(AIX, HP-UX, SUSE)测试没有问题:
- files=main.exe a.exe b.exe
- all:
- for name in `echo $(files) | sed s/.exe//g`; \
- do \
- rm -f "$$name".o; \
- done
示例:
dirs:=$(shell find . -maxdepth 1 -type d) dirs:=$(basename $(patsubst ./%,%,$(dirs))) dirs:=$(filter-out $(exclude_dirs),$(dirs)) SUBDIRS := $(dirs)
具体例子:
export ROOT_DIR=$(CURDIR)
include $(ROOT_DIR)/Makefile.param
dirs:=$(shell ls $(ROOT_DIR)/xxx/${Platform}/xx/xxx/*.table)
dirs:=$(basename $(patsubst $(ROOT_DIR)/xxx/${Platform}/xxx/xxx/%,%,$(dirs)))
all:
for name in $(dirs); \
do \
echo $$name; \
done