Значение VAR=* в bash

Значение VAR=* в bash

Я видел следующее (для запуска веб-сервера nodejs express) и не могу найти документацию по *этому поводу:

prompt>> DEBUG=* command

Это устанавливает DEBUGвременное значение в среде команды, но какое значение? Я попробовал export DEBUG=*на отдельной строке и DEBUGв итоге получил звезду:

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

Так что, возможно, в этом нет ничего особенного, и веб-сервер nodejs express проверяет, DEBUGесть ли "*". Существуют ли ситуации (например, разная история команд), когда это DEBUG=* commandприведет к тому, DEBUGчто в среде команды не будет звезды?

решение1

man bashПодробно описаны все расширения, которые выполняются во время присвоения переменных:

Текст после знака = в каждом назначении переменной подвергается расширению тильды, расширению параметров, подстановке команд, арифметическому расширению и удалению кавычек перед назначением переменной.

Никтоиз этих расширений изменят значение DEBUG=*.

Еслирасширение имени путибыли выполнены во время назначения переменных, это привело бы *к замене списка файлов. Но,расширение имени путиявляетсянетв списке выше и, следовательно, не будет изменять *.

В общем, DEBUG=*устанавливает значение DEBUGлитерала *.

Связанный контент