3

我正在编写一个makefile,并假设我有以下内容;

FILES = file1.py \
    folder1/file2.py \
    folder2/file3.py

我有以下for循环:

    -@for file in $(FILES); do \
           echo $${file/folder1\/}; \
    done

以上将打印:

file1.py
file2.py
folder2/file3.py

我想要的输出是:

file1.py
file2.py
file3.py

我查看了一些关于 shell 扩展的文档,但还没有找到解决这个问题的方法。我可以知道我应该如何更改代码以获得正确的输出吗?任何帮助将不胜感激。

编辑:语法

4

2 回答 2

5

你已经接受了@Jens 的 shell 风格的答案,但我会建议一个make 风格的解决方案:

-@for file in $(notdir $(FILES)); do \
       echo $${file}; \
done
于 2012-05-08T17:35:20.767 回答
2

尝试使用echo $${file##*/}. 这将只给出文件名部分,直到最后一个斜杠。

于 2012-05-07T21:17:36.980 回答