使用 构建某些内容后,make
我想将所有以子文件夹结尾的文件移至.cache.{js,woff}
子文件夹中。
(cd $(PFROOT)/PVWR2/gwt/pdfwebviewer/; \
mkdir -p cache_files; \
mv *.cache.{js,woff} sub_folder)
问题是,运行时make
它似乎解释*.cache.{js,woff}
为文件名而不是动态的东西,当然没有具有显式名称的文件*.cache.{js,woff}
。当我只是导航到该文件夹并使用上述命令从 shell 手动移动它时,它可以顺利工作。
我知道这与通配符有关,但我不知道如何解决这个问题。
答案1
{...}
是 bash 特定的大括号扩展语法,但 make/bin/sh
默认使用而不是bash
.
来自info make
,第 5.3.2 节:
用作 shell 的程序取自变量
SHELL
。如果您的 makefile 中未设置此变量,则该程序/bin/sh
将用作 shell。
如果要使用 bash 解析 Makefile 中的 shell 结构,可以将以下内容添加到顶部:
SHELL := /bin/bash