
を使用して何かを作成したら、サブフォルダで終わるすべてのファイルをサブフォルダに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}
。上記のコマンドを使用してフォルダに移動し、シェルから手動で移動すると、スムーズに動作します。
これがワイルドカードに関連していることを知っていますが、この問題を解決する方法がわかりません。
答え1
{...}
bashのみ中括弧拡張構文ですが、makeは/bin/sh
デフォルトでbash
。
info make
、セクション5.3.2から:
シェルとして使用されるプログラムは変数から取得されます
SHELL
。この変数がmakefileに設定されていない場合、プログラムは/bin/sh
シェルのように動作します。
bashを使用してMakefileのシェル構造を解析するには、上部に次のように追加できます。
SHELL := /bin/bash