Oturumun adı tmux değişkeninde saklanır #S
, bir terminalde erişmek için şunları yapabilirsiniz:
tmux display-message -p "#S"
Eğer kullanmak istiyorsanız .tmux.conf
, basitçe #S
. -p
Seçeneğin mesajı stdout'ta yazdıracağını unutmayın , aksi takdirde mesaj tmux durum satırında görüntülenir.
Yukarıdaki komut bir oturum içinde çağrılırsa, oturumun adını döndürür. Herhangi bir oturumun dışında çağrılırsa, hala son çalışan oturumun adını döndürür. Bir oturumun içinde olup olmadığını kontrol etmek için bir tmux komutu bulamadım , bu yüzden bu iş etrafında gelmek zorunda kaldı:
tmux list-sessions | sed -n '/(attached)/s/:.*//p'
tmux list-sessions
ekli ise tüm oturumları gösterir (attached)
, sonunda gösterilir. Sed ile -n
anahtar kelimeyi bulduğumuz yer dışındaki tüm çıktıları (seçenek ) bastırıyoruz (attached)
, bu satırda a'dan sonra herşeyi kesiyoruz :
, bu da oturumun adını bize bırakıyor. Bunun aksine benim için bir oturumun içinde ve dışında çalışır tmux display-message -p "#S"
.
Tabii ki bu sadece oturum adına hayır :
ve hayır varsa çalışır (attached)
.
Chris Johnsen tarafından yorumlandığı gibi , bir tmux oturumu içinde olup olmadığını kontrol etmenin bir yolu , ortam değişkeninin ayarlanıp ayarlanmadığını görmektir:
[[ -n "${TMUX+set}" ]] && tmux display-message -p "#S"
tmux
oturum var , diğerindetmux
oturum dışındayım . Her ikisine de komut yazdığımdatmux display-message -p "#S"
, aynı sonuç yazdırılır ve her iki komutun dönüş değeri aynı olur.