O problema é o seguinte (Aqui não uso find
pois não suporta curinga de asterisco duplo **
):
$ FILES=(foo/**/*.suffix bar/**/*.suffix2)
$ grep baz "${FILES[@]}" # works
# I use this to create one local var with local in one function
$ SUBFILES="${FILES[@]}"
$ grep baz "${SUBFILES[@]}" # doesn't work
Eu costumava od
verificá-los, mas eles são iguais, pelo menos têm o mesmo número de "\n" e o mesmo comprimento (não verifiquei caractere por caractere. Mas, à primeira vista, eles são iguais).
$ echo ${SUBFILES[@]} | od -c
$ echo ${FILES[@]} | od -c
Por que a atribuição de variáveis não cria um objeto que ainda funcione grep
?