Env - Википедия - env
Операционная система | Unix, Unix-подобный, Inferno |
---|---|
Платформа | Кроссплатформенность |
Тип | Команда |
Лицензия | coreutils: GPLv3 + |
env
это ракушка команда за Unix и Unix-подобный операционные системы. Он используется для печати списка переменные среды или запустить другую утилиту в измененной среде без изменения существующей в настоящее время среды. С помощью env
, переменные могут быть добавлены или удалены, а существующие переменные могут быть изменены путем присвоения им новых значений.
На практике, env
имеет еще одно общее применение. Часто используется сценарии оболочки запустить правильный устный переводчик. При таком использовании окружающая среда обычно не изменяется.
История
Версия env
в комплекте GNU coreutils был написан Ричардом Млинариком, Дэвидом Маккензи и Ассафом Гордоном.[1] Впервые он появился в 4.4BSD, и является частью POSIX.1 (с -я только вариант).[2]
GNU env был расширен для обработки сигналов и текущего каталога.[1] FreeBSD с env поддерживает настраиваемый путь поиска. В обеих версиях есть расширения: -u, для сброса переменных, и -S, для разделения аргументов (в основном в shebang).[2]
Примеры
Чтобы распечатать список всех переменных среды, просто запустите env без аргументов:
env
Чтобы очистить среду (создание новой среды без каких-либо существующих переменных среды) для новой оболочки:
env -i / bin / sh
Для запуска Икс заявление xcalc и отобразить его на другом дисплее:
env ОТОБРАЖАТЬ=foo.bar:1.0 xcalc
Обратите внимание, что в таком использовании env часто нет необходимости, поскольку большинство оболочек поддерживают установку переменных среды перед командой:
ОТОБРАЖАТЬ=foo.bar:1.0 xcalc
env также может использоваться в хэшбэнг строка сценария, чтобы разрешить устный переводчик для поиска через PATH. Например, вот код очень простого Python сценарий:
#! / usr / bin / env python3Распечатать("Привет, мир!")
В этом примере / usr / bin / env
это полный дорожка из env
команда. Окружающая среда не изменена.
Обратите внимание, что можно указать интерпретатор без использования env
, задавая полный путь питон
устный переводчик. Проблема с этим подходом заключается в том, что в разных компьютерных системах точный путь может отличаться. Вместо этого используя env
как в примере, интерпретатор ищется и находится в момент запуска скрипта (точнее, env
системный вызов execvp
, который определяет местонахождение интерпретатора и запускает его). Это делает сценарий более портативный, но также увеличивает риск выбора неверного интерпретатора, поскольку он ищет совпадения в каждом каталоге на пути поиска исполняемых файлов. Он также страдает той же проблемой, что и путь к env
двоичный файл также может отличаться для каждой машины.
Смотрите также
Рекомендации
- ^ а б Linux Пользователя Руководство - Пользовательские команды –
- ^ а б FreeBSD Общие команды Руководство –
внешняя ссылка
- Единая спецификация UNIX, Выпуск 7 из Открытая группа : установить среду для вызова команд - Справочник по командам и утилитам,
- Inferno Общие команды Руководство –
- env - страница руководства из GNU coreutils.
- OpenBSD Общие команды Руководство : запустить программу в измененной среде -
- NetBSD Общие команды Руководство : установка и среда печати -