LoginSignup
2
4

More than 5 years have passed since last update.

tmuxで現在アタッチしているセッション名を取得

Last updated at Posted at 2015-01-15
$ tmux list-sessions -F '#{?session_attached,#S,}' | grep -v '^$'

複数のセッションにアタッチしている可能性がある点に注意。

現在操作しているシェルのセッション名が欲しい場合は以下のとおり。

$ tmux list-panes -F '#{?pane_active,#S,}' | grep -v '^$'

解説

list-sessions でセッションの一覧を表示できる。

-Fを指定するとそのフォーマットを指定できる。

フォーマットには変数を使うことができる。
変数を展開するには#を使い波括弧で囲むとできる。

#{session_attached}とするとアタッチしているセッションの場合1と表示される。

#Sはセッション名を返す。

$ tmux list-sessions -F '#{session_attached} #S'
0 hoge
1 goro
0 mogu
0 koro

変数の値が0の場合と1の場合で処理をわけたいときは #{?変数名,1の場合,0の場合}が使用できる。

$ tmux list-sessions -F '#{?session_attached,attach,not} #S'
not hoge
attach goro
not mogu
not koro

1の場合にSの変数の中身をだせば目的を達成できる。

$ tmux list-sesssions -F '#{?session_attached,#S,}'

goro


空行がでてしまうので好きな方法で消せばよい。

セッションは複数attachされている場合がある。

アクティブなペインをつかってセッション名を表示すれば、ひとつだけ出力できる。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4