37

或者至少是其中的一部分,这是有道理的。

更具体地说,我有一些通过运行脚本导出的环境变量,以便为手头的任务创建足够的环境。当我运行 tmux 时,这些变量在全局或会话环境中都看不到。当然我可以再次运行这个脚本但是......

但是,如果我可以在我的.tmux.conf文件中指定特定的变量,我会很满意:

set-environment VAR $VAR

不符合我的预期。

提前致谢 :)

啊,我想我知道为什么了。

当启动第二个 tmux 会话时,比如在另一个终端中,它会从第一个终端复制环境。第一个几乎采用了调用 shell 的当前环境并为其添加了一些 tmuxiness。

我当前的解决方法是在我需要更改环境时停止和启动我的 tmux 会话。

4

1 回答 1

68

您应该配置tmux会话选项update-environment以包括在创建新会话时要更新的变量。默认值包括几个常见的 X11 和 SSH 变量:

DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY

要添加变量,请使用set-option tmux命令及其-g-a标志(附加到现有的“全局”(默认)值)。在你的~/.tmux.conf

set-option -ga update-environment ' YOUR_VAR'

确保包含前导空格,以便您的变量名称与默认值中的尾随名称分开。

于 2012-03-23T03:58:59.443 回答