Когда вы вводите команду
env GO111MODULE=off echo $GO111MODULE
, переменная $GO111MODULE
подставляется немедленно (в текущем контексте) до того, как env
запустится или получит шанс установить переменную.Таким образом, env просто видит GO111MODULE=off echo on
в качестве аргументов.
Чтобы увидеть эффект изменения среды, вам нужно организовать поиск envvar после того, как env
установит его,Таким образом, что-то вроде:
env GO111MODULE=off sh -c 'echo $GO111MODULE'
покажет измененную переменную - один '
будет препятствовать расширению var текущей оболочкой, поэтому env
получит 4 аргумента: GO111MODULE=off
sh
-c
и echo $GO111MODULE
.Затем он вызовет sh
с двумя аргументами, что, в свою очередь, расширит переменную и запустит echo
с одним off
аргументом.