Команды управления переменными окружения Linux |
![]() |
Добавил(а) microsin |
Команды printenv, env, export, set, unset относятся к командам управления переменными окружения Linux. Они позволяют просматривать значения переменных и устанавливать их значения. printenv. Фактически printenv это псевдоним env print. Эта команда прозволяет напечатать значения всех переменных (если запустить эту команду без опций), либо только указанной переменной (для этого в командной строке к команде надо добавить имя переменной). Например: $ printenv SHELL
/bin/bash
Также в командной строке могут быть использованы опции: -0, --null --help --version env. Эта команда запустит программу в модифицированном окружении. env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] Команда установит каждую переменную NAME в значение VALUE, и запустит команду COMMAND в новом окружении. Обязательные аргументы для длинных опций являются обязательными также и для коротких опций. Запущенная без опций, команда env просто выведет список переменных окружения, точно так же как и printenv. Опции env: -i, --ignore-environment -0, --null -u, --unset=NAME -C, --chdir=DIR -S, --split-string=S #!/usr/bin/env -S perl -w -T
...
.. приведет к выполнению perl -w -T 1.pl . Без '-S' параметр скрипта вероятно будет принят неудачно с ошибкой: /usr/bin/env: 'perl -w -T': No such file or directory
--block-signal[=SIG] --default-signal[=SIG] sh -c 'env --default-signal=PIPE seq inf | head -n1'
--ignore-signal[=SIG] --list-signal-handling -v, --debug --help --version Указание - подразумевает -i. SIG может быть именем сигнала наподобие 'PIPE', или номером сигнала наподобие '13'. Без SIG подключаются все известные сигналы. Можно указать несколько сигналов через разделитель запятой. Примечание: страничка документации POSIX exec(2) замечает следующее: "многие существующие приложения ошибочно предполагают, что они запускаются с определенными сигналами, установленными в действие по умолчанию и/или разблокированными. Поэтому лучше не блокировать и не игнорировать сигналы между исполнителями без явных на то причин и особенно не блокировать сигналы между исполнителями произвольных (не тесно взаимодействующих) программ". export. Установит атрибут экспорта для переменных shell. Пометит каждое NAME для автоматического экспорта в окружение выполняемых впоследствии команд. Если предоставлено значение VALUE, то присвоит VALUE перед экспортом. export [-fn] [NAME[=VALUE] ...] или export -p Опции: -f Относится к функциям shell. -n Удалит свойство экспорта из каждого NAME. -p Отобразит список всех экспортированных переменных и функций. Аргумент -- запретит дальнейшую обработку опций. Возвратит успех кроме ситуации, когда указана недопустимая опция или недопустимое значение NAME. set. Команда set установит или отменит установку значений опций shell и позиционных параметров. Позволяет поменять значение shell-атрибутов и позиционных параметров, или отобразить имена и значения shell-переменных. set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...] Опции: -a -b -e -f -h -k -m -n -o option-name allexport То же самое, что -a braceexpand То же самое, что -B emacs Использовать интерфейс редактирования строки в стиле emacs errexit То же самое, что -e errtrace То же самое, что -E functrace То же самое, что -T hashall То же самое, что -h histexpand То же самое, что -H history Разрешить историю команд ignoreeof Оболочка не будет закрыта при чтении EOF interactive-comments keyword То же самое, что -k monitor То же самое, что -m noclobber То же самое, что -C noexec То же самое, что -n noglob То же самое, что -f nolog Сейчас принимается, но игнорируется notify То же самое, что -b nounset То же самое, что -u onecmd То же самое, что -t physical То же самое, что -P pipefail Возвращаемое значение конвейера является статусом последней команды posix Изменить поведение bash там, где операция по умолчанию отличается privileged То же самое, что -p verbose То же самое, что -v vi Использовать интерфейс редактирования строки в стиле vi xtrace То же самое, что -x -p -t -u -v -x -B -C -E -H -P -T -- - Использование + вместо - приводит к тому, что эти флаги выключаются. Флаги также могут использоваться при вызове shell-а. Текущий набор флагов можно найти в $-. Оставшиеся n ARG-ов это позиционные параметры, и они присваиваются по порядку $1, $2, .. $n. Если ARG-ы не указаны, то будут напечатаны все переменные shell-а. Статус выхода: возвратит успех за исключением ситуации, когда указана недопустимая опция. unset. Команда unset позволяет удалить экспортированную переменную. Пример: $ export NO_PYTHON=1
$ printenv | grep PYTHON
NO_PYTHON=1
$ unset NO_PYTHON
$ printenv | grep PYTHON
$
[Ссылки] 1. Different Types of Shebang in Linux site:baeldung.com. |