2013-12-20 5 views
6

私は複数のプロジェクトがあり、その中に環境変数をそのプロジェクトに固有の値に設定するスクリプトがたくさんある状況で働いています。セッションの環境変数を設定するTMUX

私がしたいのは、プロジェクトごとに個別のtmuxセッションを使用して、そのセッションのすべてのウィンドウに変数が設定されるように変数を設定することです。

私は、-gオプションを使って動作するset-environmentオプションを使用しようとしましたが、そのサーバーに接続されているすべてのセッションの変数を設定しました。

-gオプションを指定しないと、show-environmentを使用するとそのセットが表示されますが、シェルの変数にはアクセスできません。

誰かがこれを修正する方法を思い付いていますか? tmuxの1.8を使用して

答えて

4

をtcshのセッションにいる間は、コマンドと、各セッションのtmuxの(ローカル)環境変数にアクセスすることができます。

bash> tmux show-environment 

をあなたは-gパラメータを追加する場合は、すべてのセッション、すなわち地球環境のための環境を得る。ローカル環境は地球環境と同じではありません。前のコマンドは、全体のローカル環境を印刷しますが、あなたはまた、ただ一つの変数を見ることができます:値を取得するには

bash> tmux show-environment variable_name 
      variable_name=value 

、あなたには、いくつかの「sedの」魔法を使用するか、または単一の変数の「輸出」を使用することができ、またはシェル全体に環境全体を「エクスポート」することもできます。以下は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

私は私にそのセッション内のすべてのウィンドウからMY_VARへのアクセスを提供tmuxはセッションを開始する前に私は、単純な

export MY_VAR="some value" 

をやりました。

+0

tmuxを起動するたびにこれを行うのはどうですか? – holms

関連する問題