무언가를 만든 후 하위 폴더로 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}
. 폴더로 이동하여 위 명령을 사용하여 셸에서 수동으로 이동하면 문제 없이 작동합니다.
globbing과 관련이 있다는 것을 이해하지만 이 문제를 해결하는 방법을 모르겠습니다.
답변1
{...}
중괄호 확장을 위한 bash 전용 구문이지만 make는 /bin/sh
기본적으로 bash
.
info make
, 섹션 5.3.2 에서 :
쉘로 사용되는 프로그램은 변수에서 가져옵니다
SHELL
. 이 변수가 makefile에 설정되어 있지 않으면 프로그램이/bin/sh
셸로 사용됩니다.
bash를 사용하여 Makefile의 쉘 구성을 구문 분석하려면 맨 위에 다음을 추가할 수 있습니다.
SHELL := /bin/bash