我在用 Mac。当我tmux new-session -s
新建一个会话时,窗口中会出现一个$PATH
随机顺序的重复条目,这与 Tmux 之外的条目不同。
但是,如果我C-b c
在同一个 Tmux 会话中创建一个新窗口,$PATH
输入将再次正常且正确。我完全迷路了,想知道如何调试它。
这会导致我为 Tmux 编写的一些脚本无法执行。这些脚本以前运行得很好,但现在却不行了。
答案1
最后我发现 tmux 总是会调用 shell 的配置文件,而不仅仅是 rc。因此,如果您像我一样使用 bash,它将调用 /etc/profile,而 /etc/profile 又会调用 path_helper。
为了修复此问题,请更改/etc/profile
为:
if [[ -z $TMUX ]] && [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
如果你正在使用 bash,也请将export PATH=$PATH:/foo
其中的 any 更改.bashrc
为
if [[ -z $TMUX ]]; then
export PATH=$PATH:/foo
fi
然后重新启动终端(例如 Iterm)。一切都应该很好!
答案2
如果重复的环境变量键对应的值相同,则不会导致脚本失败。
让您的脚本优雅地处理冗余信息,并且仅当同一个单键出现不同的值时才中止。