Jak uzyskać wyjście ze skryptu `screen` do skryptu?


33

Mam screenuruchomioną instancję i musiałbym wykonać część kodu wewnątrz screeni pobrać wynik do mojego skryptu.

Pierwsza część jest dość łatwa screen -S session_name -X eval 'stuff "$cmd"\015'.
(Zmieniłem wiersz znaleziony w skrypcie )

Druga część, polegająca na wydostaniu się z produkcji, jest trudniejsza. Jak mogę uzyskać cały wynik, niezależnie od jego wielkości?



Dzięki :) Drugi link został wyjaśniony, dlaczego pierwsze polecenie musi być stuff, i właśnie to miałem problem ze zrozumieniem.
miejsce

Odpowiedzi:


29

Możesz zacząć screenod -Lopcji. Spowoduje to, że screen utworzy plik screenlog.n(część n jest numeryczna, zaczynając od zera) w bieżącym katalogu roboczym.

W twoim przypadku wyglądałoby to tak: screen -S session_name -L -X eval 'stuff "$cmd"\015'

Tak długo, jak pamiętasz, aby posprzątać później, powinno to pasować do tego, czego szukasz.

W przypadku ostatniego wiersza dziennika można go łatwo uzyskać za pomocą tail -1 screenlog.0lub cały dziennik można przeanalizować w dowolny sposób.


Jedno tylko: screenpolecenie, które wydałem, to po prostu wysłanie polecenia. Aby rozpocząć screen, użyłem screen -dmS name program;-)
1

22

Jeszcze jeden niuans, który może być pomocny w przyszłości: jeśli jesteś w sesji ekranowej, możesz interaktywnie poprosić o utworzenie pliku dziennika. Naciśnij ctrl- a H(Control-A, a następnie duże H), aby poprosić screen o rozpoczęcie zrzutu dowolnego okna w pliku dziennika.


5
Nie wiem, czy to z powodu nowszej wersji, ale mój man screenmówi: muszę wpisać CA H, bez kontroli tylko dla H. Sad, że to nie przechwytuje poprzedniego dziennika.
Matmarbon,

2
Masz rację! CA H generuje plik dziennika. Pamiętaj, że jest to wielka litera H (mała litera h tworzy jedynie kopię bieżącego ekranu).
rickumali

3
Zaktualizuj odpowiedź do CA H. Przyszli użytkownicy mogą wprowadzać w błąd i przegapić prawidłową odpowiedź.
gc5

Czy ktoś zna sposób na przesłanie polecenia za pomocą skryptu? Jak w kontroli wysyłania + a, a następnie H po ułamku sekundy.
Zach W.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.