GNU ekranı oturum başlığını durum çubuğunda doğru şekilde göster


0

GNU ekranında oturumun başlığının durum çubuğunda gösterilmesini istiyorum. Çalışıyor ama tam istediğim gibi değil.

Benim .screenrc içinde tanımlanmış aşağıdaki backtick var:

backtick 100 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'

Dediğim gibi, ekran oturumu başlığını değil, aynı zamanda o oturumun PID'sini görüntüler; örneğin, gibi bir şey gösterir

1234.foo

foo bu oturumun adıdır.

Sorum şu: Sadece oturumun adını göstermek için nokta içeren sayıları nasıl kaldırabilirim? (Açıkçası, grep konusunda fazla bilgili değilim ...)

Yanıtlar:


1

Sizin durumunuzda, oturum adını screen -lskolayca çıktı almak için awk kullanmak .

screen -ls | grep --color=no -o "$PPID[^[:space:]]*" | awk 'BEGIN { FS="."} { print $NF }'

test ortamımda:

(default sessionname)
$ screen -ls | grep --color=no -o "$PPID[^[:space:]]*"
12817.pts-5.hostname
$ screen -ls | grep --color=no -o "$PPID[^[:space:]]*" | awk 'BEGIN { FS="."} { print $NF }'
hostname

(sessionname is 'foo')
$ screen -ls | grep --color=no -o "$PPID[^[:space:]]*"
12817.foo
$ screen -ls | grep --color=no -o "$PPID[^[:space:]]*" | awk 'BEGIN { FS="."} { print $NF }'
foo

GNU Ekranı'nın en son sürümünü kullanıyorsanız (> = 4.1.0), %Soturum adını görüntülemek için resim yazısı veya hardstatus karakterindeki escape stringini kullanabilirsiniz .

hardstatus alwayslastline "[%S] some strings you like..."

Bu tam olarak tanımladığınız gibi çalışıyor, teşekkürler! .Screenrc'nin içine koyduğumda, 'BEGIN'in önündeki emirden vazgeçme sorunum var. Bundan sonraki sorum çok basit: Bu durumda iç içe ya da çoklu kullanma' ... Bu durumda ...?
Alf

söz awkhatırlattı tr: Burada kullanabileceğim tr -d [:digit:]önünde numaralarını kaldırır hangi foo(Ben, tabii, ayrıca nokta kaldırmak olabilir "."nasılsa oraya bir nokta olmasının stili gibi ama). Aynı zamanda ;-).screenrc''
Alf

0

yoshikaw'un cevabına yaptığım yorumda söylediğim gibi, bunu kullanamıyorum (bunun için bir yol olduğundan emin olduğum halde).

Bununla birlikte, trkomutunu kullanarak istediğimi yapmanın başka bir yolunu buldum :

backtick 100 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*" | tr -d [:digit:]' | tr -d .

İlk trkomut PID'yi (sayılar) trsiler ve 2. komut noktası siler.

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.