在tmux.conf文件中使用环境变量


12

是否可以在tmux.conf文件中使用环境变量?我正在尝试为环境变量设置默认路径。目前我正在尝试的是:

set -g default-path $MYVAR

此外,我想检查$ MYVAR是否已设置,所以我可以这样做:

if($MYVAR == "") set-environment -g MYVAR /somepath/

有任何想法吗?

Answers:


12

是的,看起来可以在.tmux.conf文件中扩展Shell变量。看起来它不是必需的,但是引用它们是个好主意,尤其是。我现在能够使用状态栏选项成功完成此操作。

# In ~/.tmux.conf:
set -g status_left "$MYVAR etc: "

$ export MYVAR="Shell stuff"
$ tmux

我不知道配置中是否有任何“如果”或其他控制结构,但可能存在。


我不能让它在tmux脚本文件中工作。我确定$ MYVAR已设置,并且我运行了脚本并且失败了。设置-g默认路径“ $ MYVAR”拆分窗口-h它将拆分窗口,但默认路径未设置为$ MYVAR
Digital Powers

2
好的,我发现了问题所在,如果我在运行tmux之前设置了环境变量,则可以在tmux.conf文件中使用它。如果我设置环境变量,或者使用set-environment在tmux.conf中,或者在我进入tmux之后重新加载tmux.conf,它确实会使用我设置的新变量。知道为什么吗?
Digital Powers

在tmux中运行的shell是tmux的子进程。这些环境内改变的东西是不会传播完成回线到TMUX父进程。因为tmux成为您从中启动它的shell的子代,所以它只能以其他方式起作用。我认为配置重载与启动父进程的新子进程类似。
Caleb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.