为什么这个循环不一次处理一个文件?

为什么这个循环不一次处理一个文件?

我有一个包含各种文件的目录:

main.js
SomeClass.js
View.jsx

我想循环遍历所有 .jsx 文件。所以我写了这个 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

但由于某种原因,会打印出这样的内容:

/path/to/View.jsx

路径:/path/to/*.jsx

名称:*.jsx

所以我不明白为什么在一种情况下$JSX_FILE具有 value /path/to/View.jsx,而在另一种情况下它具有 value /path/to/*.jsx。如何确保该变量在循环中的各处具有相同的值?

答案1

引用 glob 会抑制 globbing。

for JSX_FILE in "$BUILD_DIR"/*.jsx; do   

相关内容