Belirli bir klasördeki belirli bir önekle (say exclude_
) başlamayan tüm dosyalar üzerinde işlem yapmak istiyorum . Böyle bir for
genişletilmiş glob ile bash döngü var:
for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
Komut satırında, bu iyi çalışır:
$ for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
foo/bar/apple
foo/bar/pear
foo/bar/banana
Ancak, bir makefile kullandığımda:
target:
for FILE in foo/bar/!(exclude_*) ; do echo $$FILE ; done
Aşağıdaki hatayı alıyorum:
$ 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'
Kaçırdığım bazı kaçışlar var mı?
.SHELLFLAGS
benim için işe yaramadı, ama bayrakları doğrudan koymak işeSHELL=/bin/bash -O extglob -c
yaradı. Neden herhangi bir fikir?