在for循环中使用seq时,我的Makefile出错

问题描述 投票:0回答:1

我有以下Makefile:

MYVAR = 10

target:
    for i in $(seq 0 $MYVAR)
    do
        echo "test" . $i
    done

基本上我想要的是......

test 1
test 2
...
test n

当我尝试运行它时,我得到:

for in in syntax error:意外的文件结尾

对此有什么正确的魔力?

makefile gnu-make
1个回答
1
投票

正确的语法是:

MYVAR = 10

target:
    for i in $$(seq 0 $(MYVAR)); \
    do \
        echo "test" . $$i; \
    done

运行方式如下:

$ make
for i in $(seq 0 10); \
do \
    echo "test" . $i; \
done
test . 0
test . 1
test . 2
test . 3
test . 4
test . 5
test . 6
test . 7
test . 8
test . 9
test . 10

(我不确定你在.命令中的echo是什么意思,如果它不是一个错字)。

请注意,在配方中的shell命令中,您打算由shell扩展的任何$...必须作为$$...进行转义,以便make本身不会扩展它。

© www.soinside.com 2019 - 2024. All rights reserved.