Насколько я знаю, недавно запущенный сценарий оболочки наследует переменные среды. Есть ли способ заблокировать это? (запущенная оболочка без наследования переменных)
Кажется, вы можете префикс своего скрипта с 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 &, чтобы избежать необходимости выходить из оболочки при однократном запуске сценария, чтобы восстановить исходное значение переменных среды.
Редактировать:
Судя по более раннему плакату, я ошибаюсь в том, что это невозможно.