mhi*_*tza 31 shell zsh alias environment-variables
这个问题一直困扰着我一段时间,虽然我认为我已经通过EnvWatcher找到了我的答案,但不幸的是它只适用于 Bash。我使用 zsh。
我想在较小程度上复制 env-watcher 所做的事情,但我需要知道是否有一个命令可以将 shell 重置为干净的启动阶段。
例如,我想要以下工作流程。
source some-functions
alias another-thing
export SVN_EDITOR=vim
RESET-ZSH # none of the above are valid any more
Run Code Online (Sandbox Code Playgroud)
是否有这种内置的可能性,还是我在追逐蝴蝶?
Ran*_*832 41
你可以exec zsh
,这会给你一个新的 zsh 并重新运行 init 函数。请注意,您需要exec zsh -l
登录 zsh 以保持其“登录外壳”状态。我不知道它保存命令历史记录的效果如何(它似乎对我有用,但是如果您在不同的终端中使用多个 shell,您可能会在两个 shell 的历史记录之间出现“串扰”)
Chr*_*ris 20
要撤消导出的环境变量,可以使用env
命令env -i zsh
.? env
运行作为参数给出的命令,并-i
为其提供一个干净的环境。
根据您的配置,您可能需要附加-l
到zsh
?/? bash
为了加载你.profile
,你可能还需要“引导”你的环境$HOME
,使外壳知道在哪里可以找到你的启动文件。总而言之,这看起来像:
env -i HOME="$HOME" zsh -l
Run Code Online (Sandbox Code Playgroud)