我遇到了一个非常奇怪的问题。Tmux 正在导出一个环境变量,我以前在 中导出过~/.bashrc
,但后来我删除了它(我们就把它叫做 吧)$MYSTERIOUS_ENV_VAR
。当我在 tmux 会话中运行 时echo $MYSTERIOUS_ENV_VAR
,它继续输出我以前在 中导出的路径~/.bashrc
。但是,当我echo
在普通 shell 中(而不是在 tmux 中)运行相同的命令时,它什么也没有返回,这正是我所期望的。
我已经检查了我的 tmux 配置和 shell 启动文件,但我没有将其导出到任何地方,所以我真的很困惑它来自哪里 - 彻底地说,这些是我检查过的文件:
~/.bashrc
~/.tmux.conf
~/.bash_profile
如果有帮助的话,我导出的环境变量是$PASSWORD_STORE_DIR
,它用于开源密码管理程序,经过。我曾经让它指向一个自定义位置,但我删除了导出,以便我的密码可以保存到默认位置$HOME/.password-store
。
我觉得自己做了一件很傻的事,这是一个简单的问题,但我似乎无法弄清楚它是什么。任何帮助都将不胜感激!
答案1
tmux 可以使用以下命令取消设置环境
tmux set-environment -r MY_ENV_VARIABLE
所以你的情况应该是
tmux set-environment -r PASSWORD_STORE_DIR
答案2
你必须杀死全部现有的 tmux 会话来解决此问题。
我不知道为什么你必须这样做,这看起来真的很傻,但是每当我更新我的代理环境变量时,我都会不断遇到 ZSH + tmux 的这个问题,并且终止我的所有 tmux 会话是即使在新会话中获取新窗格以停止重新导出旧环境变量的唯一方法。