Kabuk isteminde GNU ekran oturumu adı ve pencere başlığı gösteriliyor


11

GNU Screen oturum adını ve pencere başlığını kabuğun komut isteminde sunmanın bir yolu var mı (diyelim ki, tarafından tanımlanan Bash istemi PS1)?

Yanıtlar:


14

Ekran bazı ortam değişkenlerini sağlar ( screen(1) kılavuzundan):

STY              Alternate socket name.
WINDOW           Window number of a window (at creation time).

"Oluşturma zamanında", bir pencereyi yeniden numaralandırırsanız (ekranın numberkomutunu kullanarak ), kabuğa değişiklikten bahsedilmez ve $ WINDOW yine de ilk pencere numarasıyla aynı olur.

Şöyle bir şey kullanabilirsiniz:

PS1='\u@\h(${STY}:${WINDOW}):\w$ '

1
Mükemmel! Aradığım şey buydu. BTW, pencere numarası yerine pencere başlığını almanın bir yolu var mı?
brandizzi

Bildiğimden değil, ekran için bir api yok ve komutları verdiğinizde çıktı yok - ekrandaki geçerli pencereye gidiyor. Örneğin screen -xr 2466 -X windows.
Arcege

Muhtemelen yeniden numaralandırma durumunun altına düşse de, ayarlanmışsa pencerenin adına erişmenin bir yolu var Ctrl-a Amı?
Thalis K.

1
GNU Eğer screenile derlenmiştir -Q(sorgu) seçeneği, o zaman gibi bazı komutlar, çalıştırabilir titleve windowsbir eğik yeni satır olmadan, ancak ve stdout'a veri ekran var.
Arcege

3

Her zaman hassas ekran oturumu adları kullanırım. Sonra PS1'e sayısal kimlik çıkarılmış (teşekkürler dimo414) ekran STY env var ekleyebilirsiniz. Kıvırcık parantez veya herhangi bir şeyle süslemiyorum çünkü her zaman bir oturumda değilim. Basit bir örnek:

PS1='\u@\h ${STY#[0-9]*.} \w$ '

1

Bunu kullanıyorum:

(`echo ${STY} | sed -e 's/[0-9]*\.//g'`:${WINDOW}:`screen -Q title`)

işlem numarasını ${STY}
pencere numarasını içerdiği için kaldırır ("oluşturma sırasında" belirtildiği gibi)
pencere başlığını içerir (döndürüldüğü gibi screen -Q title)

notlar:

  • ilk kez çalıştığında, screen -Qbir tuşa basmayı bekler
  • Ca CA ile pencere başlığı ayarlamak ve sonra istemi güncelleştirmek için benim .profile kaynak

5
Kullanarak ${STY#[0-9]*.}boru döşenmesi gerekmez sed.
dimo414
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.