Bash: временно изменить среду

Я использую инструмент dev, который предоставляет скрипт, который устанавливает переменные окружения. Если я создаю сценарий, среда изменяется на время отделения bash. Чтобы отменить изменения, внесенные этим скриптом, мне нужно перезапустить терминал. Есть ли способ сделать это без перезапуска или открытия новой сессии bash?

Спасибо.

2
задан 5 May 2011 в 03:37

1 ответ

Сделайте это попутно:

$ (. /path/to/envsetup.sh; runtool)

Если есть только несколько изменений среды, вы можете сделать их в командной строке:

$ FOO=a BAR=b runtool # FOO and BAR will be set only for runtool

Вы также можете использовать фактический подоболочек, если вы предполагаете сделать несколько вещей:

$ bash
$ : this is a subshell
$ . /path/to/envsetup.sh
$ thing1
$ thing2
$ : ...
$ exit
$ : this is the original shell

Вы можете включить $SHLVL в свой $PS1 для последнего, так что легче сказать, что вы в подоболочке. Я также проверяю (нестандартную) переменную среды $PSYS и печатаю ее, если она установлена, как своего рода «метку» для среды.

0
ответ дан 5 May 2011 в 03:37

Другие вопросы по тегам:

Похожие вопросы: