Por que esse loop não processa um arquivo de cada vez?

3

Eu tenho um diretório com vários arquivos:

main.js
SomeClass.js
View.jsx

E eu quero percorrer todos os arquivos .jsx. Então eu escrevi este script Bash:

for JSX_FILE in "$BUILD_DIR/*.jsx"; do   
    echo $JSX_FILE
    echo "PATH: $JSX_FILE"
    JSX_FILENAME=$(basename "$JSX_FILE")
    echo "NAME: $JSX_FILENAME"
done

Mas, por algum motivo, isso seria impresso:

/path/to/View.jsx

PATH: /path/to/*.jsx

NAME: *.jsx

Portanto, não entendo por que, em um caso, $JSX_FILE tem o valor /path/to/View.jsx e, em outro, tem o valor /path/to/*.jsx . Como posso ter certeza de que esta variável terá o mesmo valor em todo o loop?

    
por this.lau_ 04.11.2017 / 16:20

1 resposta

16

Citando o glob inibe globbing.

for JSX_FILE in "$BUILD_DIR"/*.jsx; do   
    
por 04.11.2017 / 16:23