특정 접두사로 시작하지 않는 특정 폴더의 모든 파일 (예 :)에서 작업을 수행하려고합니다 exclude_
. for
다음과 같은 확장 글로브 가있는 bash 루프가 있습니다.
for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
커맨드 라인에서 이것은 잘 작동합니다.
$ for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
foo/bar/apple
foo/bar/pear
foo/bar/banana
그러나 makefile에서 사용할 때 :
target:
for FILE in foo/bar/!(exclude_*) ; do echo $$FILE ; done
다음과 같은 오류가 발생합니다.
$ make
for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done'
내가 놓친 탈출구가 있습니까?
.SHELLFLAGS
나를 위해 작동하지 않았지만 깃발을 직접 넣는 것이SHELL=/bin/bash -O extglob -c
좋습니다. 어떤 아이디어가 있습니까?