Ответы:
Кажется, вы можете добавить к своему сценарию префикс, env -i
который очистит среду перед запуском сценария:
env -i sh test.sh
От man env
:
-i, --ignore-environment
start with an empty environment
Не уверен, почему вы хотели бы сделать это, хотя ...
chsh ...
если я просто открою окно терминала и запустлю zsh
или fish
(с или без -l
значения), это загрязняет мою среду всеми видами переменных из Оболочка Я начал это. Выполнение трюка с env -c
решает эту проблему для меня. Я делаю env -i TERM=xterm-256color $(which fish)
.
Одна возможность (хотя это выглядит довольно некрасиво):
exec -c $SCRIPT
запустит $ SCRIPT с пустой средой. (см. man bash
поиск exec \[-cl\]
).
Насколько я знаю, ответ - «Нет». Вы можете переопределить переменные среды внутри самого скрипта. Значение переменной среды должно вернуться к своему первоначальному значению после завершения работы скрипта. Вероятно, вам нужно запустить скрипт как дочерний процесс: $ this.script.sh &, чтобы избежать необходимости выходить из вашей оболочки каждый раз, когда вы запускаете скрипт, чтобы сбросить переменные среды к их первоначальному значению.
Редактировать:
Из более раннего плаката может показаться, что я ошибаюсь из-за того, что это невозможно.