Significado de VAR=* no bash

Significado de VAR=* no bash

Eu vi o seguinte (para iniciar um servidor web expresso nodejs) e não consigo encontrar documentação sobre isso *:

prompt>> DEBUG=* command

Isso define DEBUGum valor temporário no ambiente do comando, mas qual valor? Tentei export DEBUG=*uma linha própria e DEBUGacabei sendo uma estrela:

prompt>> export DEBUG=*
prompt>> printenv DEBUG
*
prompt>>

Portanto, pode não haver nada de especial nisso, e o servidor web nodejs express verifica se DEBUGé "*". Existem situações (como um histórico de comandos diferente) em que DEBUG=* commandresultaria em DEBUGnão ser uma estrela no ambiente do comando?

Responder1

man bashdetalha todas as expansões executadas durante as atribuições de variáveis:

O texto após = em cada atribuição de variável sofre expansão de til, expansão de parâmetro, substituição de comando, expansão aritmética e remoção de aspas antes de ser atribuído à variável.

Nenhumdessas expansões mudará o valor de DEBUG=*.

Seexpansão do nome do caminhoforam executadas durante a atribuição de variáveis, elas seriam *substituídas por uma lista de arquivos. Mas,expansão do nome do caminhoénãona lista acima e, consequentemente, não alterará o arquivo *.

Em suma, DEBUG=*define o valor de DEBUGcomo literal *.

informação relacionada