在makefile中将循环变量传递给shell函数

时间:2016-08-30 13:14:13

标签: makefile

如何将下面的变量i的值传递给shell部分中的echo.sh脚本?

loop:
    for i in 3 2 1; do \
        echo "var i = $$i"; \
        echo $(shell echo.sh $$i); \
    done

echo.sh可能只是:

#!/bin/bash
echo $1

输出显示

for i in 3 2 1; do \
        echo "var i = $i"; \
        echo ; \
    done
var i = 3

var i = 2

var i = 1

棘手的部分是能够将$ i传递给$(shell ...)makefile函数。到目前为止,我还没弄清楚。

由于

编辑:将echo添加到$(shell ...行并更新了输出。它试图运行一个命令。原始问题仍然存在。

1 个答案:

答案 0 :(得分:1)

摆脱shell调用,不仅在这里没有必要,它还会在其余命令发送到shell之前进行扩展和调用。

loop:
    for i in 3 2 1; do \
        echo "var i = $$i"; \
        ./echo.sh $$i; \
    done