automatyzacja ekranu GNU

4

Chciałbym uruchomić ekran GNU, niektóre polecenia powłoki, a następnie otworzyć nowe okna z różnymi poleceniami - wszystko automatycznie ze skryptu. Czy to możliwe?

AKTUALIZACJA

okna ekranowe nie powinny być zamykane po wykonaniu poleceń, chcę tylko zachować sesję ekranową (i odłączyć)

mykhal
źródło

Odpowiedzi:

5

Możesz umieścić swoje polecenia w pliku, np. W myscreenrcnastępujący sposób:

screen command1
screen command2
screen command3

a następnie uruchom screenz -copcją, po której następuje nazwa tego pliku, np.

screen -c myscreenrc

AKTUALIZACJA

w odpowiedzi na zaktualizowane pytanie. Polecenia I były używane do badań screen vim fooi screen vim bar, więc nie widzę problemu ekranu zamykania. Poniższe rozwiązuje problem zamykania ekranu, ale wydaje się to trochę kłopotliwe.

screen bash -c 'ls foo; exec bash -i'
screen bash -c 'ls bar; exec bash -i'

ls było po prostu wygodnym poleceniem do testowania tego problemu.

AKTUALIZACJA # 2

Innym podejściem byłoby uruchomienie polecenia z pliku rc powłoki zamiast z pliku rc ekranu. Wymaga jednak innego pliku dla każdego polecenia. Na przykład, aby uruchomić topw screenoknie takim, że zamknięcie topspowoduje powrót do bashmonitu w tym samym oknie, utwórz plik, wywołaj go runtop, który zawiera następujące elementy:

. ~/.bashrc
top

Następnie wstaw tę linię do pliku, który wywołujemy screenrc:

screen bash --rcfile ~/runtop -i

i zacznij screenjako

screen -c screenrc
garyjohn
źródło
ciekawe, robi to i kończy pracę, ale potrzebuję okien ekranowych, żeby pozostały .. może powinienem wyjaśnić moje pytanie
mykhal,
dobra robota, ale nie jest to idealne, jeśli uruchomię bash za pomocą jakiegoś polecenia, chciałbym, aby powłoka się nie zamknęła, nie uruchamiała nowej powłoki. do zadań interaktywnych, np bash -i -c top. jest użyteczny, niestety, shell kończy pracę natychmiast po wyjściu z góry.
mykhal
@mykhal: Sprawdź, czy AKTUALIZACJA # 2 do mojej odpowiedzi pomaga.
garyjohn