Env - Википедия - 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 двоичный файл также может отличаться для каждой машины.

Смотрите также

Рекомендации

  1. ^ а б env (1) – Linux Пользователя Руководство - Пользовательские команды
  2. ^ а б env (1) – FreeBSD Общие команды Руководство

внешняя ссылка