Makefile遍历目录中的文件

时间:2019-06-24 11:41:40

标签: makefile

我想遍历目录并(以回溯方式)选择具有给定扩展名的所有文件,然后回显文件路径。不知何故,这是行不通的,但是对于我到目前为止所读的内容,这应该行得通。如果我在iTerm中运行它,那么我可以看到文件,但是当我使用make运行它时,我只会得到空的回显行。行数是正确的,我看不到文件路径。

OS:macOS 10.14.5 品牌:GNU品牌3.81

clean:
    for f in log/**/*.log; do \
        echo $f; \
    done

我读的答案:

1 个答案:

答案 0 :(得分:1)

有两个错误。

首先,**不是POSIX,但默认情况下请使用/bin/sh。因此,您必须在makefile中设置另一个shell,例如SHELL=/bin/bash

接下来,echo $f; \在将其输入到外壳之前通过make进行扩展。因此,您必须用双倍的美元进行转义:echo $$f; \