pic11 Asked: 2011-05-05 15:37:29 +0800 CST2011-05-05 15:37:29 +0800 CST 2011-05-05 15:37:29 +0800 CST Bash:临时改变环境 772 我正在使用一个开发工具,它提供了一个设置环境变量的脚本。如果我获取脚本,则会在 bash 分离期间修改环境。为了恢复该脚本所做的更改,我需要重新启动终端。有没有办法在不重新启动或打开新的 bash 会话的情况下做到这一点? 谢谢。 10.10 1 个回答 Voted Best Answer geekosaur 2011-05-05T15:41:35+08:002011-05-05T15:41:35+08:00 在子shell中执行此操作: $ (. /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在您的$PS1for 后者中,因此更容易判断您在子外壳中。我还检查(非标准)环境变量$PSYS并在设置时将其打印出来,作为环境的一种“标签”。
在子shell中执行此操作:
如果只有少量环境更改,您可以在命令行上执行它们:
如果您期望做很多事情,您也可以使用实际的子外壳:
您可能希望包含
$SHLVL
在您的$PS1
for 后者中,因此更容易判断您在子外壳中。我还检查(非标准)环境变量$PSYS
并在设置时将其打印出来,作为环境的一种“标签”。