Bedeutung von VAR=* in Bash

Bedeutung von VAR=* in Bash

Ich habe Folgendes gesehen (um einen Node.js Express-Webserver zu starten) und kann hierin keine Dokumentation dazu finden *:

prompt>> DEBUG=* command

Dies setzt DEBUGeinen temporären Wert in der Befehlsumgebung, aber welchen Wert? Ich habe es export DEBUG=*in einer eigenen Zeile versucht und DEBUGes 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=* commanddazu führen würde, dass DEBUGin der Befehlsumgebung kein Stern vorhanden ist?

Antwort1

man bashbeschreibt 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 DEBUGauf einen Literalwert gesetzt *.

verwandte Informationen