export VARIABLE_NAME='some value'
— способ установить переменную среды любая POSIX-совместимая оболочка (sh
, dash
, bash
, ksh
и т. д.; также zsh). Если у переменной уже есть значение, вы можете использовать export VARIABLE_NAME
, чтобы сделать ее переменной среды без изменения ее значения.
Pre-POSIX оболочки Bourne не поддерживали это, поэтому вы увидите сценарии, которые избегают export VARIABLE_NAME='some value'
и используют VARIABLE_NAME=' некоторое значение'; вместо этого экспортируйте VARIABLE_NAME
. Но оболочки Bourne до POSIX в настоящее время крайне редки.
setenv VARIABLE_NAME='некоторое значение'
— это синтаксис csh для установки переменной среды. setenv
не существует в sh, а csh крайне редко используется в скриптах и за последние 20 лет превзошел bash по интерактивному использованию (а zsh и того дольше), так что про него можно забыть разве что вы сталкиваетесь с этим.
Команда env
очень редко полезна, за исключением shebang lines.При вызове без аргументов он отображает среду, но export
делает это лучше (сортируется и часто цитируется для устранения неоднозначности новых строк в значениях от новых строк, которые разделяют значения). При вызове с аргументами он запускает команду с дополнительными переменными среды, но та же команда без env
также работает (VAR=value mycommand
запускает mycommand
с VAR
устанавливается в значение
, точно так же, как env VAR=значение mycommand
). Причина, по которой env
полезна в строке shebang, заключается в том, что она выполняет поиск PATH
и не делает ничего другого при вызове с именем команды. Команда env
может быть полезна для запуска команды только с несколькими переменными среды с -i
или без параметров для отображения среды, включая переменные с недопустимыми именами, которые не поддерживает оболочка. Импортировать.