Jump to content

окружение

окружение
Операционная система Unix , Unix-подобные , Inferno
Платформа Кросс-платформенный
Тип Команда
Лицензия основные утилиты : GPLv3+

env — это оболочки команда для Unix и Unix-подобных операционных систем . Он используется либо для печати списка переменных среды , либо для запуска другой утилиты в измененной среде без необходимости изменения существующей в данный момент среды. С использованием envпеременные можно добавлять или удалять, а существующие переменные можно изменять, присваивая им новые значения.

На практике, env имеет еще одно общее применение. Он часто используется сценариями оболочки для запуска правильного интерпретатора . При таком использовании среда обычно не изменяется.

Версия env пакет GNU coreutils был написан Ричардом Млынариком, Дэвидом Маккензи и Ассафом Гордоном. [1] Впервые он появился в версии 4.4BSD и является частью POSIX.1 (с -i только вариант). [2]

GNU env был расширен для обработки сигналов и текущего каталога. [1] FreeBSD env поддерживает собственный путь поиска. Расширения, найденные в обеих версиях, включают -u для сброса переменных и -S для разделения аргументов (в основном в shebang). [2]

Чтобы распечатать набор текущих переменных среды:

env

Чтобы создать новую среду без каких-либо существующих переменных среды для новой оболочки:

env -i /bin/sh

Чтобы выполнить X приложение xcalc и отобразить его на другом дисплее (т. е. в измененной среде, если указанная переменная среды заменена новым значением):

env DISPLAY=foo.bar:1.0 xcalc

Обратите внимание, что такое использование env часто не является необходимым, поскольку большинство оболочек поддерживают установку переменных среды перед командой:

DISPLAY=foo.bar:1.0 xcalc

env также можно использовать в строке хеш-банга сценария, чтобы разрешить интерпретатора поиск через PATH. Например, вот код скрипта Python :

#!/usr/bin/env python3
print("Hello, World!")

В этом примере /usr/bin/env полный путь это env команда. Окружающая среда не изменена.

Обратите внимание, что можно указать интерпретатор, не используя env, указав полный путь python устный переводчик. Проблема с этим подходом заключается в том, что в разных компьютерных системах точный путь может быть разным. Вместо этого используя env как и в примере, интерпретатор ищется и находится в момент запуска скрипта (точнее, env выполняет системный вызов execvp, который выполняет поиск интерпретатора и его запуск). Это делает сценарий более переносимым , но также увеличивает риск того, что будет выбран неправильный интерпретатор, поскольку он ищет совпадение в каждом каталоге на пути поиска исполняемого файла. Он также страдает от той же проблемы, заключающейся в том, что путь к env двоичный файл также может отличаться для каждой машины.

См. также

[ редактировать ]
  1. ^ Jump up to: а б env(1) Linux пользователя Руководство – Пользовательские команды
  2. ^ Jump up to: а б env(1) FreeBSD по основным командам Руководство
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 089ceda43936d723535e684f0fce99d0__1659940560
URL1:https://arc.ask3.ru/arc/aa/08/d0/089ceda43936d723535e684f0fce99d0.html
Заголовок, (Title) документа по адресу, URL1:
env - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)