Quiero hacer una operación en todos los archivos en una carpeta particular que no comienzan con un prefijo particular (por ejemplo exclude_
). Tengo un for
bucle bash con un globo extendido que se ve así:
for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
En la línea de comando, esto funciona bien:
$ for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
foo/bar/apple
foo/bar/pear
foo/bar/banana
Pero, cuando lo uso en un archivo MAKE:
target:
for FILE in foo/bar/!(exclude_*) ; do echo $$FILE ; done
Obtuve el siguiente error:
$ 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'
¿Hay algún escape necesario que me haya perdido?
.SHELLFLAGS
, no funcionó para mí, pero poner las banderas directamenteSHELL=/bin/bash -O extglob -c
sí. Alguna idea de por qué?