for i in $(ls);do
if [ $i = '*.java' ];then
echo "I do something with the file $i"
fi
done
現在のフォルダー内の各ファイルをループして、特定の拡張子と一致するかどうかを確認したいと思います。上記のコードは機能しません、なぜでしょうか?
$i
リテラル文字列「* .java」と比較しています。ここではパターン展開は行われません。
if [[ $i == *.java ]]; then
..を使用します(二重の[[]]と引用符で囲まれていない* .javaに注意してください)。
ls
-@chepnerの回答を受け入れる
for i in $(ls *.java); do echo "do something with file $i"; done
ですか?