tmux.confファイルで環境変数を使用する


12

tmux.confファイルで環境変数を使用することは可能ですか?default-pathを環境変数に設定しようとしています。現在私が試しているのは:

set -g default-path $MYVAR

さらに、私ができるように$ MYVARがすでに設定されているかどうかを確認したいと思います。

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

何か案は?

回答:


12

はい、.tmux.confファイル内のシェル変数を展開できるようです。必須ではないようですが、それらを引用することをお勧めします。ステータスバーのオプションを使用して、これを正常に実行できました。

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

$ export MYVAR="Shell stuff"
$ tmux

構成内の「if」またはその他の制御構造については知りませんが、存在する可能性があります。


これをtmuxスクリプトファイルで機能させることができません。$ MYVARが設定されているはずですが、スクリプトを実行すると失敗します。set -g default-path "$ MYVAR" split-window -hウィンドウを分割しますが、default-pathが$ MYVARに設定されていません
Digital Powers

1
わかりました。問題が発生している場所を見つけました。tmuxを実行する前に環境変数を設定すると、tmux.confファイルでそれを使用できます。環境変数を設定する場合、tmux.confでset-environmentを使用するか、tmuxに入った後、tmux.confをリロードして、設定した新しい変数を使用しません。理由は何ですか?
Digital Powers

tmux内で実行するシェルは、tmuxの子プロセスです。これらの環境内で物事を変更しても、その行をtmux親プロセスに反映せることはできません。tmuxは起動したシェルの子になるため、逆方向にしか機能しません。親プロセスの新しい子を起動するという点で、config reloadは似ていると思います。
カレブ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.