Angenommen, ich habe die folgende for-in-Schleife:
for i in /apps/textfiles/*.txt
do
do something
done
Nehmen wir nun an, ich habe 50 Dateien darin/apps/textdateien/
In welcher Reihenfolge werden die Dateien ausgewählt?
Antwort1
Dateinamenerweiterung in Bash ist Sortierungalphabetisch.
Bash durchsucht jedes Wort nach den Zeichen '
*
', '?
' und '[
'. Wenn eines dieser Zeichen vorkommt, wird das Wort als Muster betrachtet und durch eine alphabetisch sortierte Liste von Dateinamen ersetzt, die dem Muster entsprechen [...].
Es macht hier keinen Unterschied, dass Ihr Globbing-Kontext Teil der for
Schleife ist.
Beachten Sie, dassalphabetischDie Sortierung folgt weiterhin der Sortierreihenfolge, die durch dieLC_COLLATE
Variable:
LC_COLLATE
Diese Variable bestimmt die Sortierreihenfolge, die beim Sortieren der Ergebnisse der Dateinamenerweiterung verwendet wird, und bestimmt das Verhalten von Bereichsausdrücken, Äquivalenzklassen und Sortiersequenzen innerhalb der Dateinamenerweiterung und des Mustervergleichs (siehe Dateinamenerweiterung).