我正在编写一个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扩展的文档,但还没有找到解决这个问题的方法。我可以知道如何更改代码以获得正确的输出吗?任何帮助将非常感谢。
编辑:语法
答案 0 :(得分:5)
你已经接受了@Jens的shell风格答案,但我会建议make-style解决方案:
-@for file in $(notdir $(FILES)); do \
echo $${file}; \
done
答案 1 :(得分:2)
尝试使用echo $${file##*/}
。这将只给出文件名部分,而不包含最后一个斜杠。