用户工具

站点工具


语法:makefile

makefile

1. for

NAME := a b c
run:
	@for tmp in $(NAME); do \
		echo $$tmp; \
	done

2. 根据文件内容循环执行

根据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
语法/makefile.txt · 最后更改: 2026/08/29 13:59 由 user01

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki