【发布时间】:2013-01-08 10:15:48
【问题描述】:
for i in $(ls);do
if [ $i = '*.java' ];then
echo "I do something with the file $i"
fi
done
我想遍历当前文件夹中的每个文件并检查它是否与特定扩展名匹配。上面的代码不起作用,你知道为什么吗?
【问题讨论】:
-
for i in $(ls *.java); do echo "do something with file $i"; done呢? -
没有办法解决这个 if 语句?
-
您将
$i与文字字符串“*.java”进行比较;此处不进行模式扩展。 -
要修复 if 语句,请使用
if [[ $i == *.java ]]; then..(注意双 [[]] 和未引用的 *.java)。 -
Don't parse
ls-- 接受@chepner 的回答