
Ich habe Folgendes gesehen (um einen Node.js Express-Webserver zu starten) und kann hierin keine Dokumentation dazu finden *
:
prompt>> DEBUG=* command
Dies setzt DEBUG
einen temporären Wert in der Befehlsumgebung, aber welchen Wert? Ich habe es export DEBUG=*
in einer eigenen Zeile versucht und DEBUG
es ist am Ende ein Stern:
prompt>> export DEBUG=*
prompt>> printenv DEBUG
*
prompt>>
Es kann also sein, dass nichts Besonderes daran ist und der Node.js Express-Webserver nachsieht, ob DEBUG
"*" vorhanden ist. Gibt es Situationen (wie z. B. einen anderen Befehlsverlauf), in denen dies DEBUG=* command
dazu führen würde, dass DEBUG
in der Befehlsumgebung kein Stern vorhanden ist?
Antwort1
man bash
beschreibt alle Erweiterungen, die während der Variablenzuweisung durchgeführt werden:
Der Text nach dem = in jeder Variablenzuweisung wird einer Tilde-Erweiterung, Parametererweiterung, Befehlsersetzung, arithmetischen Erweiterung und Anführungszeichenentfernung unterzogen, bevor er der Variablen zugewiesen wird.
Keinerdieser Erweiterungen ändert den Wert von DEBUG=*
.
WennPfadnamenerweiterungwährend der Variablenzuweisung ausgeführt würden, würde dies dazu führen, *
dass durch eine Liste von Dateien ersetzt wird. Aber,PfadnamenerweiterungIstnichtin der Liste oben und wird daher nichts ändern *
.
Zusammengefasst DEBUG=*
wird der Wert von DEBUG
auf einen Literalwert gesetzt *
.