Shell参数扩展:如何在没有目录部分的情况下获取文件名?

use*_*216 3 shell makefile variable-expansion

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

FILES = file1.py \
    folder1/file2.py \
    folder2/file3.py
Run Code Online (Sandbox Code Playgroud)

我有以下for循环:

    -@for file in $(FILES); do \
           echo $${file/folder1\/}; \
    done
Run Code Online (Sandbox Code Playgroud)

以上将打印:

file1.py
file2.py
folder2/file3.py
Run Code Online (Sandbox Code Playgroud)

我想要的输出是:

file1.py
file2.py
file3.py
Run Code Online (Sandbox Code Playgroud)

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

编辑:语法

Bet*_*eta 5

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

-@for file in $(notdir $(FILES)); do \
       echo $${file}; \
done
Run Code Online (Sandbox Code Playgroud)