`` `` `İçindeki bir komut dosyasına çıktı nasıl elde edilir?


33

screenÇalışan bir örneğim var ve içinde bazı kodlar yürüttüm screenve sonucumu komut dosyama getirmem gerekiyor.

İlk kısım oldukça kolay, ben sadece screen -S session_name -X eval 'stuff "$cmd"\015'.
( Bir komut dosyasında bulduğum satırı değiştirdim )

Çıktıdan çıkan ikinci kısım ise daha zordur. Boyutu ne olursa olsun bütün çıktıyı nasıl alabilirim?



Teşekkürler :) İkinci bağlantı, ilk komutun neden olması gerektiğini açıklamıştı stuff.
1ace

Yanıtlar:


29

Sen başlayabileceğini screenile -Lseçeneği. Bu screenlog.n, mevcut çalışma dizininde ekranın bir dosya oluşturmasına (n kısmı sıfırdan başlayarak nümeriktir) neden olacaktır .

Senin durumunda bu şunun gibi bir şey olurdu: screen -S session_name -L -X eval 'stuff "$cmd"\015'

Daha sonra temizlemeyi hatırladığınız sürece, bunun peşindekilerle eşleşmesi gerekir.

Kütüğün son satırı için kolayca elde edilebilir tail -1 screenlog.0veya dilediğiniz halde tüm kütük ayrıştırılabilir.


Yine de bir şey: screenverdiğim komut sadece komutu göndermek oldu. Başlamak için screenkullandım screen -dmS name program;-)
1ace

22

Gelecekte yardımcı olabilecek bir nüans daha: Eğer bir ekran oturumundaysanız, etkileşimli olarak günlük dosyasının oluşturulmasını isteyebilirsiniz. Bir günlük dosyasına hangi pencereyi bıraktığınızı ekrandan boşaltmaya başlamanızı istemek için ctrl- a H(Önce Control-A ardından H harfine basın) tuşuna basın .


5
Daha yeni bir sürüm olup olmadığını bilmiyorum ama derim man screenki, H. H kontrolü olmadan CA H yazmalıyım, bu sadece önceki kaydı yakalamıyor.
Matmarbon

2
Haklısın! Bir günlük dosyası oluşturmak için CA H. Lütfen bunun büyük H olduğunu unutmayın (küçük harf h, yalnızca geçerli ekranın bir kopyasını oluşturur).
rickumali,

3
Lütfen cevabı CA H olarak güncelleyin. Gelecekte arama yapanlar yanlış yönlendirilebilir ve doğru cevabı kaçırabilir.
gc5

Komutu bir komut dosyası yoluyla göndermenin bir yolunu bilen var mı? Gönderme kontrolünde + a ve sonra H'yi bölünmüş bir saniyeden sonra.
Zach W.
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.