我想遍历目录并(以回溯方式)选择具有给定扩展名的所有文件,然后回显文件路径。不知何故,这是行不通的,但是对于我到目前为止所读的内容,这应该行得通。如果我在iTerm中运行它,那么我可以看到文件,但是当我使用make运行它时,我只会得到空的回显行。行数是正确的,我看不到文件路径。
OS:macOS 10.14.5 品牌:GNU品牌3.81
clean:
for f in log/**/*.log; do \
echo $f; \
done
我读的答案:
答案 0 :(得分:1)
有两个错误。
首先,**
不是POSIX,但默认情况下请使用/bin/sh
。因此,您必须在makefile中设置另一个shell,例如SHELL=/bin/bash
接下来,echo $f; \
在将其输入到外壳之前通过make进行扩展。因此,您必须用双倍的美元进行转义:echo $$f; \