In meinem Shell-Skript Ich habe folgenden Codeseltsames Verhalten von wildcharacter * in Shell-Skript
echo * | tr ' ' '\n'
Hier bemerkte ich, dass, obwohl ich * wurde mit, es versteckte Dateien hüpft (. *) Danach habe ich versucht, eine offensichtliche Änderung
echo .* | tr ' ' '\n'
Dies löste mein verstecktes Dateiproblem. Aber ich bin nur neugierig zu diesem seltsamen Verhalten von *
Da * ist Teilmenge von *
Die wünschenswerte Leistung von
Echo. * -> Alle Dateien einschließlich der versteckten Dateien
Echo . * -> Alle versteckten Dateien
echo [^.] * -> Alle nicht versteckte Dateien (derzeit echo *)
Daher echo * ist wie Echo verhalten [^.] *
Wie kann ich ganze Liste von Dateien, einschließlich der versteckten Dateien mit Echo erhalten. Ähnlich war die Ausgabe für ls und dir, obwohl ls -a gab gewünschte Ausgänge
'. *' Ist ** nicht die Teilmenge ** von '*'. Es ist genau ** komplementär ** (unter Annahme des POSIX-Standardverhaltens). – Jens
dann was ist [^.] * ??? – Kaunteya
'[^.] *' Expandiert zu den gleichen Dateinamen wie '*', also auch keine Untermenge. – Jens