Significado de VAR=* en bash

Significado de VAR=* en bash

Vi lo siguiente (para iniciar un servidor web nodejs express) y no puedo encontrar documentación sobre esto *:

prompt>> DEBUG=* command

Esto establece DEBUGun valor temporal en el entorno del comando, pero ¿qué valor? Probé export DEBUG=*una línea propia y DEBUGtermino siendo una estrella:

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

Entonces, puede que no tenga nada de especial y el servidor web nodejs express busca si DEBUGes "*". ¿Hay situaciones (como un historial diferente de comandos) en las que DEBUG=* commandresultaría en DEBUGno ser una estrella en el entorno del comando?

Respuesta1

man bashdetalla todas las expansiones que se realizan durante las asignaciones de variables:

El texto después de = en cada asignación de variable sufre expansión de tilde, expansión de parámetros, sustitución de comandos, expansión aritmética y eliminación de comillas antes de ser asignado a la variable.

Ningunode esas expansiones cambiará el valor de DEBUG=*.

Siexpansión del nombre de rutase realizaran durante la asignación de variables, provocaría *que fueran reemplazados por una lista de archivos. Pero,expansión del nombre de rutaesnoen la lista anterior y, en consecuencia, no alterará el archivo *.

En resumen, DEBUG=*establece el valor de DEBUGen un literal *.

información relacionada