Oto, co chcę osiągnąć:
- Chcę otworzyć terminal gnome z pięcioma zakładkami
- Chcę uruchomić zestaw poleceń (5–10 poleceń) na każdej karcie automatycznie.
Pierwsza zakładka: ustawia przejrzysty widok, a następnie wykonuje jedno lub więcej poleceń.
Druga zakładka: loguje się na serwerze i wykonuje niektóre polecenia.
Trzecia zakładka: wykona tylko niektóre polecenia
gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab
(działa dobrze, widok jest ustawiony, ale po tym nie jest wykonywane żadne polecenie)
Próbowałem zrobić to w ten sposób i uruchomiłem to w skrypcie poniżej:
gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript
#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact
Jeśli usunę exec gnome-terminal --geometry 125x49-0+81 –tab
wiersze z przykładu i wywołam skrypt z innego pliku, to zadziała dobrze - zaloguję się na serwerze i wykonam wszystkie polecenia. Czy ktoś może mi pomóc rozwiązać ten problem?
Napisanie skryptu, który wywołuję dla każdej karty, nie jest opcją, ponieważ na końcu będę miał 5 terminali z 5-7 kartami, a to oznacza, że pisanie skryptów to od 25 do 30 (kosztuje więcej niż pomaga w moim problemie).
linux
terminal
gnome-terminal
ekido
źródło
źródło
Odpowiedzi:
To wydaje się działać na moim komputerze:
Uwaga: jak tylko procesy uruchomione przez -e zostaną uruchomione, zostaną zakończone. W tym przypadku bash jest ładowany, uruchamia wszelkie przekazane mu polecenia i natychmiast istnieje. Wstawiam instrukcje read, aby czekać na dane wejściowe użytkownika. W ten sposób karty nie zostaną zamknięte, dopóki nie naciśniesz klawisza, tak abyś mógł to zobaczyć w tym przykładzie. Bez nich wyglądałoby to tak, jakby otworzyły się tylko dwie zakładki, ponieważ pozostałe dwie wykonałyby się i zamknęły zbyt szybko.
źródło
Ponieważ bash kończy się po zakończeniu komendy, możesz wywołać inną instancję
bash
po komendzie, aby uzyskać interaktywną powłokę:źródło
Zapisz poniżej jako script.sh
dodaj skrypt.sh do $ PATH, a następnie uruchom go
Zobacz Otwieranie nowej karty w gnome-terminalu za pomocą wiersza poleceń .
źródło