3

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

prompt>> DEBUG=* command

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

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

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

1 ответ1

2

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .