====== makefile ======
===== - for =====
NAME := a b c
run:
@for tmp in $(NAME); do \
echo $$tmp; \
done
===== - 根据文件内容循环执行 =====
根据gen.txt文件内容,在makefile中循环执行。
输入文件:
> cat gen.txt
items = a b c
Makefile文件:
run1:
@line=$$(head -n1 gen.txt); \
tile_list=$$(echo "$$line" | awk '{for(i=3;i<=NF;i++) printf " %s", $$i}'); \
for tile in $$tile_list; do \
echo "process tile: $$tile"; \
done
ITEMS = $(shell head -n1 gen.txt | awk '{for(i=3;i<=NF;i++) printf " %s", $$i}')
run2:
@for tile in $(ITEMS); do \
echo "process tile: $$tile"; \
done
ITEMS_3 = $(shell head -n1 gen.txt | awk '{for(i=3;i<=NF;i++) printf "%s", $$i}')
run3:
@for tile in $(ITEMS_3); do \
echo "process tile: $$tile"; \
done
ITEMS_4 = $(shell head -n1 gen.txt | awk '{for(i=3;i<=NF;i++) printf $$i}')
run4:
@for tile in $(ITEMS_4); do \
echo "process tile: $$tile"; \
done
执行结果:
> make run1
process tile: a
process tile: b
process tile: c
> make run2
process tile: a
process tile: b
process tile: c
> make run3
process tile: abc
> make run4
process tile: abc