GNU Ekranı: Ekran eklenmedikçe komutları dolduramazsınız?


10

Aşağıdaki komut dosyasına sahibim

screen -d -m -S $1                #start screen minimized
screen -S $1 -X stuff "$beast     
"                                 #stuff commands

Ekranı ilk olarak takmazsam, eşyaların etkileri hiçbir şey yapmaz mı? Neden bu ve ekranı eklemem gerekmediği için bu komut dosyasını nasıl değiştirebilirim?

Yanıtlar:


14

Bir Ekran oturumunu bağımsız modda ( screen -d -m) başlattığınızda , hiçbir pencere seçilmez, bu nedenle daha sonra ile gönderilen girdi screen -X stuffkaybedilir. Tuş vuruşlarını pencereye 0 ( -p 0) göndermek istediğinizi açıkça belirtmeniz gerekir . Bu Ekran oturumunda herhangi bir nedenle başka pencereler oluşturmanız durumunda, bu zaten iyi bir fikirdir.

screen -S "$1" -p 0 -X stuff "$beast$(printf \\r)"

( anahtarı printf \\rkesinlikle taklit etmek için Return; tüm programlar olmasa da birçoğu bir yeni satırı kabul eder ( \n).)


Teşekkürler! mükemmel çalışıyor. Konu dışı
olduğum

benim için çalışmıyor.
Tanner Strunk

2

Bu son zamanlarda unix.stackexchange.com'daki bir soruyu cevaplamaya çalışırken ortaya çıktı .

Özet, siz eklemediğiniz sürece ekranın varsayılan seçilmiş bir pencereye sahip olmamasıdır, ancak Gilles bize ekran komutunuza argüman ekleyerek birini seçmeyi nasıl zorlayabileceğinizi gösterdi -p 0.

Şahsen ben tavsiye geçiş tmux. Ekran komutlarınızı tmux'da çalışmak için nasıl bağlayacağınız aşağıda açıklanmıştır:

tmux new-session -d -n $1
tmux send-keys -t $1 "$beast\n"
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.