使用 建立某些內容後,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