Scroll to navigation

ENV(1) Команды пользователя ENV(1)

ИМЯ

env — запустить программу в изменённой среде окружения

СИНТАКСИС

env [ПАРАМЕТР]... [-] [ИМЯ=ЗНАЧЕНИЕ]... [КОМАНДА [АРГУМЕНТ]...]

ОПИСАНИЕ

Присвоить каждому ИМЕНИ в среде окружения ЗНАЧЕНИЕ и выполнить КОМАНДУ.

Аргументы, обязательные для длинных параметров, обязательны и для коротких.

передать АРГУМЕНТ в качестве нулевого аргумента КОМАНДЫ
начать с пустой среды окружения
-0, --null
завершать каждую выводимую строку символом конца строки NUL вместо перевода на новую строку
удалить переменную из среды окружения
сменить рабочий каталог на КАТАЛОГ
разбить строку S на отдельные аргументы; используется для передачи нескольких аргументов в строках с шебангом (#!)
заблокировать передачу КОМАНДЕ сигнала(-ов) СИГНАЛ
вернуть настройки обработки сигнала(-ов) СИГНАЛ к значениям по умолчанию
отключить обработку сигнала(-ов) СИГНАЛ
вывести настройки обработки сигналов, которые отличаются от значений по умолчанию, в стандартный поток ошибок
выводить подробную информацию по каждому этапу обработки
отобразить эту справочную информацию и завершить работу
вывести информацию о версии и завершить работу

Простое указание «-» подразумевает параметр -i. Если не указана КОМАНДА, вывести содержимое получившейся среды окружения.

СИГНАЛ может быть представлен как именем сигнала (например, «PIPE»), так и его номером (например, «13»). Если СИГНАЛ не указан, в список будут включены все известные сигналы. Несколько сигналов могут быть указаны через запятую. Пустое значение аргумента СИГНАЛ игнорируется.

Коды завершения:

125
команда env сама завершилась с ошибкой
126
КОМАНДА была найдена, но её не удалось вызвать
127
КОМАНДУ не удалось найти
-
код завершения КОМАНДЫ в остальных случаях

ПАРАМЕТРЫ

Использование -S/--split-string в сценариях

Параметр -S позволяет указать несколько параметров в сценарии. Запуск сценария с именем 1.pl, содержащего следующую первую строку:

#!/usr/bin/env -S perl -w -T
...

приведёт к выполнению perl -w -T 1.pl .

Без параметра «-S» сценарий, скорее всего, завершится со следующей ошибкой:

/usr/bin/env: 'perl -w -T': Нет такого файла или каталога

Более подробную информацию смотрите в полной документации.

Использование --default-signal[=СИГНАЛ]

Данный параметр позволяет настроить обработчик сигнала на выполнение действий по умолчанию, что невозможно сделать с помощью обычной команды оболочки trap. В примере ниже гарантируется завершение seq при получении сигнала SIGPIPE независимо от того, как этот сигнал обрабатывается в процессе, вызвавшем эту команду:

sh -c 'env --default-signal=PIPE seq inf | head -n1'

ПРИМЕЧАНИЯ

На странице руководства POSIX exec(3p) приведено следующее:

"многие существующие приложения ошибочно предполагают, что перед их запуском обработчики определённых сигналов были разблокированы и/или настроены на выполнение действий по умолчанию... В связи с этим лучше не блокировать и не включать игнорирование сигналов при вызовах exec без явной на то причины, и особенно не блокировать сигналы при вызовах произвольных (не взаимодействующих тесно друг с другом) программ."

АВТОРЫ

Программа написана Ричардом Млынариком (Richard Mlynarik), Дэвидом Маккензи (David MacKenzie) и Ассафом Гордоном (Assaf Gordon).

ИНФОРМАЦИЯ ОБ ОШИБКАХ

Онлайн-справка GNU coreutils: <https://www.gnu.org/software/coreutils/>
Сообщайте обо всех ошибках перевода по адресу <https://translationproject.org/team/ru.html>

АВТОРСКИЕ ПРАВА

Copyright © 2024 Free Software Foundation, Inc. Лицензия GPLv3+: GNU GPL версии 3 или выше <https://gnu.org/licenses/gpl.ru.html>.
Это свободное программное обеспечение: вы можете изменять и распространять его. Не предоставляется НИКАКИХ ГАРАНТИЙ в той мере, в которой это разрешено законом.

СМОТРИТЕ ТАКЖЕ

sigaction(2), sigprocmask(2), signal(7)

Полная документация на <https://www.gnu.org/software/coreutils/env>,
также доступна локально посредством info '(coreutils) env invocation'

ПЕРЕВОД

Русский перевод этой страницы руководства разработал Андрей Догадкин <adogadkin@outlook.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.

апрель 2024 г. GNU coreutils 9.5