Was bedeutet ein Sternchen (*) in der Linux-For-Schleife?

Was bedeutet ein Sternchen (*) in der Linux-For-Schleife?

Ich habe diesen .ksh-Skriptausschnitt:

for type in *
do 
    cd ${DATA_HOME}/$type
    for mid in *
        do
            #doing something here
        done
done

Meine Frage: Was also bedeutet das Sternchen *im Einzelnen, wenn es in einer For-Schleife wie oben verwendet wird?

Antwort1

"*" bedeutet alle Dateien im aktuellen Verzeichnis. Es entspricht (zumindest in Bash – ich vermute, Ksh ist ähnlich) einer durch Leerzeichen getrennten Liste von Datei-/Verzeichnisnamen in Anführungszeichen.

Sie können derartige Dinge jederzeit selbst überprüfen, indem Sie Folgendes eingeben:

echo *

Das obige Skript hatte wahrscheinlich Probleme mit der Verarbeitung von Dateien/Verzeichnissen, die Leerzeichen enthielten.

verwandte Informationen