ネストを検出したら外側のtmuxセッションを終了する

ネストを検出したら外側のtmuxセッションを終了する

リモート サーバーに接続するために ssh を使用します。ローカル マシンとリモート マシンでは、bash の起動時に tmux が自動的に起動します。

リモートで tmux セッションを開始する前に、ローカル マシン上の tmux をデタッチする方法はありますか?

アップデート

すべてのリモート マシンが tmux を起動するわけではありません。起動したマシンに対してのみこのトリックが必要です。つまり、リモートが tmux を起動しない場合は、ローカル マシンに tmux セッションを保存したいのです。

答え1

次のように、detach -E を使用して ssh をデタッチして実行するスクリプトを作成できます。

#!/bin/sh

if [ -n "$TMUX" ]; do
   tmux detach -E "ssh \"$@\""
else
   ssh "$@"
fi

直接実行することも、ssh にエイリアスすることもできます。

ただし、フラグ引数を ssh に渡す場合は、これは機能しないことに注意してください。

関連情報