Назад | Перейти на главную страницу

Запуск сценария оболочки без переменных среды

Насколько я знаю, недавно запущенный сценарий оболочки наследует переменные среды. Есть ли способ заблокировать это? (запущенная оболочка без наследования переменных)

Кажется, вы можете префикс своего скрипта с env -i который очистит среду перед запуском скрипта:

env -i sh test.sh

Из man env:

-i, --ignore-environment
              start with an empty environment

Не уверен, зачем вам это нужно ...

Одна возможность (хотя выглядит довольно некрасиво):

exec -c $SCRIPT запустит $ SCRIPT с пустым окружением. (видеть man bash ищи exec \[-cl\]).

Насколько я знаю, ответ - «Нет». Вы можете переопределить переменные окружения в самом скрипте. Значение переменной среды должно вернуться к исходному значению после завершения работы скрипта. Вероятно, вам нужно запустить сценарий как дочерний процесс: $ this.script.sh &, чтобы избежать необходимости выходить из оболочки при однократном запуске сценария, чтобы восстановить исходное значение переменных среды.

Редактировать:

Судя по более раннему плакату, я ошибаюсь в том, что это невозможно.