2013-12-20 138 views
6

我工作的環境中有多個項目,每個項目中都有很多使用環境變量設置爲特定於該項目的值的腳本。TMUX爲會話設置環境變量

我想要做的是爲每個項目使用一個單獨的tmux會話,並設置變量,以便它們爲該會話中的所有窗口設置。

我嘗試使用set-environment選項,該選項使用-g選項工作,但然後爲連接到該服務器的所有會話設置變量。

沒有-g選項,我在使用show-environment時看到它的集合,但無法訪問shell中的變量。

有沒有人想出瞭解決這個問題的方法?

使用TMUX 1.8和tcsh

回答

4

您可以訪問TMUX(本地)環境變量對每個會話,而在會議上,用命令:

bash> tmux show-environment 

如果您添加-g參數爲所有會議獲得環境,即全球環境。本地環境與全球環境不一樣。上面的命令打印整個當地的環境,但你也可以看看只有一個變量:

bash> tmux show-environment variable_name 
      variable_name=value 

來獲取值,你可以使用一些「sed的」魔法或使用「出口」的一個變量,或你甚至可以將整個環境「導出」到你的shell。以下是3種方法。

bash> tmux show-environment variable_name | sed "s:^.*=::" 
     value 

bash> eval "export $(tmux show-environment variable_name)" 
bash> echo $variable_name 
     value  

bash> for var in $(tmux show-environment | grep -v "^-"); do eval "export $var"; done; 
bash> echo $variable_name 
     value  

如果需要,可以在show-environment命令後添加-g參數,如果要訪問全局環境。

4

我做了一個簡單的

export MY_VAR="some value" 

之前,我開始了TMUX會議,這使我從會話中的所有窗口訪問MY_VAR

+0

每次啓動tmux時要怎麼做? – holms