SSH経由でサーバーにログインするたびにtmuxセッションを開きたいです。セッションがある場合は接続し、存在しない場合は作成して接続します。
これを行うにはファイルを編集する必要があると思います~/.bashrc
が、bashスクリプトでif / elseステートメントや他の操作を実行する方法がわかりません。
どうすればいいですか?
答え1
tmux
tmux attach
自分で以前のセッションに関連付けられた新しいセッションを開始します。
tmux attach
前のセッションがなければ失敗します。
これら2つの事実を組み合わせると、次の解決策が提供されます。
tmux attach || tmux
最初に試してtmux attach
失敗すると、それtmux
自体が実行されます。その場合は前のセッションに接続し、そうでない場合は新しいセッションを開始してください。これが最初の部分です。
2番目の部分では、SSHを介してログインするたびにこのコードを実行しようとしています。したがって、次の点を確認する必要があります。
- ログインシェルかどうか。これはを使用して行うことができます
shopt -q login_shell
。 - SSH経由で接続するかどうか。これは
$SSH_CLIENT
設定されていることを確認することで行うことができます。例:[ -n "$SSH_CLIENT" ]
。
したがって、これを最後に追加する必要があります.bashrc
。
if shopt -q login_shell && [ -n "$SSH_CLIENT" ]; then
tmux attach || tmux
fi