
Mir fällt auf, dass viele Bash-Dienstprogramme wie ls
, cp
, mv
, grep
reguläre Ausdrücke und Mustervergleiche verwenden. Beispielsweise Symbole wie * [] {} usw.
Ich finde jedoch, dass sich dies in mancher Hinsicht von anderen Tutorials zu regulären Ausdrücken unterscheidet, die ich im Internet finde. Gibt es einen bestimmten Standard, dem diese Dienstprogramme folgen, oder irgendwo eine umfassende Liste mit Tastenkombinationen?
Danke
Antwort1
Die von Ihnen angesprochenen Platzhaltermuster sind zwar ähnlich, aber keine regulären Ausdrücke. Sie sindGlob-Musterund in diesem ZusammenhangMuschelmuster. Sie werden von der Shell selbst erweitert – nicht von Befehlen wie ls
, cp
, usw. Nur zur Klarstellung: Diese Befehle sind eigentlich keine „Bash-Dienstprogramme“, sondern Programme, die ausgeführt werden können vonbeliebigHülse.
Wenn ein Befehl in einer Shell eingegeben wird, analysiert die Shell die Token (Wörter) und erweitert unter anderemGlob-Musterin entsprechende Dateinamen. Im häufigsten Fall werden diese Dateinamen dann von der Shell als Liste von Argumenten für den aufgerufenen Befehl bereitgestellt.
Standardisierung
Diese Shell-Muster wurden für Unix-ähnliche Betriebssysteme standardisiert inPOSIX Spezifikation:Mustervergleichsnotation.
Einige Shells (Bash und die Korn-Shell) gehen noch weiter und erweitern diese Muster, umerweiterte GlobsWeitere Informationen finden Sie im entsprechenden Abschnitt aufGregs Wiki.