====== 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