2012-09-30 25 views
6

Bir sunucu konsolu çalıştırmak için tmux kullanıyorum. Konsol yanıtlayan olup olmadığını kontrol etmek için, ben konsolda bir komutu çalıştırmak için send-keys kullanmak istiyorum:Tmux'da gönderim anahtarları nasıl sonuçlanır?

tmux send-keys -t mysess:mywin "show info" Enter 

(Aslında, şu anda bir dosyaya tam konsol çıkışını yapıp son satırı okuyorum, ama daha iyi bir çözüm var olduğunu umuyorum.)

tmux pipe-pane -o -t mysess:mywin 'cat >> mysess-mywin.log' 
+0

Try - Sorunuzu ve cevap bulmak için bu başkalarına yardımcı olacak o. [tmux] etiketinin yalnızca 75 takipçisi var. – Artemix

+0

'show info' çıktısını göremezsiniz, çünkü' mysess: mywin' içinde görünecektir, 'gönder-tuşları' komutunu çalıştırdığınız pencereye değil. – chepner

cevap

0

tek seçenek 'şov bilgisi' çalışan gönderme-tuşlarıyla bir senaryo arayıp senaryoyu tmux oturumuna geri sonuçlar 'tuşları göndermek' sahip olmaktır sen varsın Bu sadece başlamak için tmux içinde çalışıyorsa çalışır.

4

Eğer bu çözüm daha iyi olup olmadığını etkileyecek çıktı erişen, ancak bu işe yarayabilecek nasıl bağlam:

tmux send-keys -t <session:win.pane> '<command>' Enter 
tmux capture-pane -t <session:win.pane> 
tmux show-buffer 

Sen -S ile oynamak mümkün olacak ve capture-pane ait -E seçenekleri olmalıdır Çıktının doğru şekilde yakalanması için panelin boyutunun yanı sıra. Eğer bu kadar eğilimliyseniz, show-panes ve bölmenin yüksekliğini yakalamak için küçük bir regexp kullanabilirsiniz ve sadece son satırı yakalamak için -S <height - 1> kullanın.

O kadar gibi başka bir programdan bu okumayı sonra basit (örneğin python): Kullandığınız işletim sistemi için etiket eklemek için

print Popen(['tmux', 'show-buffer'], stdout=PIPE).communicate()[0] 
İlgili konular