tmux セッションを使用して、さまざまなシェルのウィンドウ/ペインを管理したいと思います。私が気づいたのは、tmux は、使用されたシェルに関係なく、後続のすべてのセッションで最初に起動されたシェルを常に使用するということです。
シェルが2つあります。aとbと呼びましょう
最初のシェルで以下を実行します:
tmux new -s a
2 番目のシェルで以下を実行します:
tmux new -s b
最終的に気付いたのは、tmux セッション b で実際に使用されているシェルはシェル a だということです。環境変数は正しく継承されていますが、シェル自体は私が期待していたものではありません。
tmux を複数のシェルでうまく動作させる方法について何か提案はありますか?
答え1
それぞれ異なるシェルを使用する複数の tmux サーバーを作成できます。
$> SHELL=$(which zsh) && tmux -L zsh-tmux-socket new -s zsh-session
$> SHELL=$(which bash) && tmux -L bash-tmux-socket new -s bash-session
のtmux マニュアルページ[-L socket-name]
オプションにより異なるソケット名を指定できることを示しています。複数の独立したtmuxサーバーを実行できるようにする。
各サーバー セッションで作成される新しいウィンドウはそれぞれ、そのセッションの SHELL 環境変数で指定されたシェルを使用することがわかりました。
これは tmux 1.8 では動作しますが、それ以前のバージョンについてはわかりません。