tmuxステータスバーで着信SSH IPアドレスを設定しようとしています

tmuxステータスバーで着信SSH IPアドレスを設定しようとしています

SSHクライアントの着信IPアドレスをtmuxステータスバーに設定しようとしていますが、どうしてもわかりません。これは私の.tmux.confの現在の設定です。

set -g status-right '#[fg=white]#(echo $SSH_CONNECTION | awk '{print $1}')'

何が起こったのですか?

答え1

これを試してみてください。Bash パラメータ展開では、% 演算子を使用して変数の展開からサフィックスを削除できます。単一の % 記号は最短のサフィックスに一致し、%% は最長のサフィックスに一致します。にはSSH_CONNECTION3 つのスペースで区切られたフィールドがあるため、最初のフィールド (IP アドレス) を除くすべてのフィールドを削除するには %% を使用する必要があります。

${SSH_CONNECTION%% *}  # Remove the first space and everything that follows it.

の値は最初status-rightに によって処理されるため、 は%% をリテラル % に置き換えるstrftime(3)ため、パーセント記号を 2 倍にする必要があります。strftime

set -g status-right '#[fg=white]#(echo ${SSH_CONNECTION%%%% *})'

関連情報