for i in $(ls);do
if [ $i = '*.java' ];then
echo "I do something with the file $i"
fi
done
Ich möchte jede Datei im aktuellen Ordner durchlaufen und prüfen, ob sie mit einer bestimmten Erweiterung übereinstimmt. Der obige Code funktioniert nicht, wissen Sie warum?
$i
mit der Literalzeichenfolge "* .java"; Eine Mustererweiterung wird hier nicht durchgeführt.
if [[ $i == *.java ]]; then
.., um die if-Anweisung so zu korrigieren, wie Sie sie haben (beachten Sie die doppelten [[]] s und die nicht zitierte * .java).
for i in $(ls *.java); do echo "do something with file $i"; done
?