迭代可变路径中的文件 (Bash)

Jor*_*kie 5 bash shell glob

我一直在寻找在变量路径中迭代文件的最佳方法,并遇到了这个问题。

但是,这个和我发现的所有其他解决方案都使用文字路径而不是变量,我相信这是我的问题。

for file in "${path}/*"
do
     echo "INFO - Checking $file"
     [[ -e "$file" ]] || continue
done
Run Code Online (Sandbox Code Playgroud)

即使目录中肯定有文件(如果我将文字路径之一放在${path}我得到预期结果的位置),这总是只迭代一次,并且 $file 的值始终是${path}/*没有任何通配符的文字值.

我究竟做错了什么?

anu*_*ava 5

shell 中的引号(单引号和双引号)内不会发生全局扩展。

您应该使用此代码:

for file in "$path"/*; do
     echo "INFO - Checking $file"
     [[ -e $file ]] || continue
done
Run Code Online (Sandbox Code Playgroud)