Я недавно столкнулся с программой на C, которая использует переменную окружения в качестве флага для изменения поведения определенной части программы:
if (getenv("FOO")) do_this_if_foo();
Затем вы запросите программу, добавив переменную окружения, , но на самом деле ничего не установив :
FOO= mycommand myargs
Обратите внимание, что цель этого состояла в том, чтобы активировать флаг - если вы не хотите, чтобы добавленная операция, вы просто не включили бы FOO=
. Тем не менее, я никогда не видел переменную окружения, установленную таким образом. Каждый пример, который я могу найти с добавленными переменными, устанавливает значение FOO=bar mycommand myargs
вместо того, чтобы оставлять его пустым.
Что именно здесь происходит, что позволяет этому флагу работать без установки? И есть ли потенциальные проблемы с реализацией переменных среды, подобных этой?