Bash 中 VAR=* 的含义

Bash 中 VAR=* 的含义

我看到了以下内容(启动 nodejs express web 服务器),但我找不到有关*此内容的文档:

prompt>> DEBUG=* command

这会DEBUG在命令环境中设置一个临时值,但是什么值呢?我尝试export DEBUG=*在一行中输入,DEBUG结果是一个星号:

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

因此可能没有什么特别之处,nodejs express web 服务器会查看是否DEBUG为“*”。是否存在这样的情况(例如,命令的历史记录不同),会导致DEBUG=* command命令DEBUG环境中的星号不为星号?

答案1

man bash详细说明变量赋值期间执行的所有扩展:

每个变量赋值中 = 后面的文本在分配给变量之前都会经过波浪符号扩展、参数扩展、命令替换、算术扩展和引号删除。

没有任何这些扩展将改变的值DEBUG=*

如果路径名扩展在变量赋值期间执行,会导致*被文件列表替换。但是,路径名扩展不是在上面的列表中,因此不会改变*

总之,DEBUG=*将 的值设置DEBUG为文字*

相关内容