를 사용하여 무언가를 만든 후 하위 폴더로 끝나는 모든 파일을 하위 폴더로 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