Đây là một Makefile đơn giản:Cách đặt biến môi trường trong công thức makefile?
all:
@for ((i = 0; i < 5; ++i)); do \
var="$$var $$i"; \
echo $$var; \
done
@echo $$var
Tôi cho rằng giá trị của "var" là "0 1 2 3 4", nhưng sản lượng là:
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
<--- NOTHING!!!
Như bạn có thể nhìn thấy người cuối cùng echo là "NOTHING". Chuyện gì thế?
tôi nghi ngờ rằng mỗi lệnh công thức được gọi trong một subshell, vì vậy "var" được định nghĩa trong công thức đầu tiên không thể gọi trong dòng thứ hai. Thê nay đung không? –