【问题标题】:Makefile loop through files in directoryMakefile 循环遍历目录中的文件
【发布时间】:2019-06-24 11:41:40
【问题描述】:

我想遍历一个目录并选择所有具有给定扩展名的文件(递归)并回显文件路径。不知何故,这不起作用,但就我到目前为止所读的内容而言,这应该起作用。如果我在 iTerm 中运行它,它可以工作并且我会看到文件,但是当我使用 make 运行它时,我只会得到空的回显行。行数是正确的,我只是看不到文件路径。

操作系统:macOS 10.14.5 制作:GNU Make 3.81

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

我读到的答案:

【问题讨论】:

    标签: makefile


    【解决方案1】:

    有两个错误。

    首先,** 是非 POSIX,但 make 默认使用 /bin/sh。所以你必须在你的makefile中设置另一个shell,例如SHELL=/bin/bash

    接下来,echo $f; \ 在将其送入 shell 之前通过 make 进行扩展。所以你必须用双美元来逃避它:echo $$f; \

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-05
      • 2013-09-20
      • 1970-01-01
      相关资源
      最近更新 更多