In meinem Bash-Skript habe ich eine Schleife über Dateien in einem Verzeichnis und eine einfache if-Anweisung, um nach bestimmten Dateien zu filtern. Allerdings verhält es sich nicht wie erwartet, aber ich verstehe nicht warum.Bash: Schleife mit if-Anweisung
(Ich weiß, dass ich für Dateierweiterungen bereits in dem for-Schleife Ausdruck filtern könnte (... in "*.txt"
), aber der Zustand komplexer in meinem konkreten Fall ist.)
Dies ist mein Code:
#!/bin/bash
for f in "*"
do
echo $f
if [[ $f == *"txt" ]]
then
echo "yes"
else
echo "no"
fi
done
Die Ausgabe erhalte ich:
1001.txt 1002.txt 1003.txt files.csv
no
Was würde ich erwarten:
1001.txt
yes
1002.txt
yes
1003.txt
yes
files.csv
no
Ich wusste, dass es so einfach war ... danke! – Tobias