Saya ingin melakukan operasi pada semua file dalam folder tertentu yang tidak dimulai dengan awalan tertentu (katakanlah exclude_
). Saya memiliki bash for
loop dengan gumpalan diperpanjang yang terlihat seperti ini:
for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
Di baris perintah, ini berfungsi dengan baik:
$ for FILE in foo/bar/!(exclude_*) ; do echo $FILE ; done
foo/bar/apple
foo/bar/pear
foo/bar/banana
Tapi, ketika saya menggunakannya di makefile:
target:
for FILE in foo/bar/!(exclude_*) ; do echo $$FILE ; done
Saya mendapatkan kesalahan berikut:
$ 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'
Apakah ada beberapa pelarian yang perlu saya lewatkan?
.SHELLFLAGS
itu tidak berhasil untuk saya, tetapi menempatkan bendera secara langsungSHELL=/bin/bash -O extglob -c
. Ada ide mengapa?