我一直在寻找在变量路径中遍历文件并遇到this问题的最佳方法。
但是,我发现的这个解决方案和其他所有解决方案都使用文字路径而不是变量,我相信这是我的问题。
for file in "${path}/*"
do
echo "INFO - Checking $file"
[[ -e "$file" ]] || continue
done
即使目录中肯定有文件(并且如果我将文字路径之一替换为${path}
也会得到预期的结果),但这总是只循环一次,并且$ file的值是始终为${path}/*
的文字值,而不会引起任何干扰。
我在做什么错?
答案 0 :(得分:1)
在shell中的引号(单引号和双引号)中不会发生全局扩展。
您应该使用以下代码:
for file in "$path"/*; do
echo "INFO - Checking $file"
[[ -e $file ]] || continue
done