Pytanie otwórz terminal od Pythona


Pracuję nad programem, który ma przycisk. Po naciśnięciu chcę otworzyć terminal, który uruchamia:

sudo apt-get update

Używam:

os.system("gnome-terminal -e 'sudo apt-get update'")

To działa dobrze. Jedynym problemem jest to, że po zakończeniu aktualizacji terminal się zamyka. Co mogę zrobić, aby zostawić terminal otwarty?


13
2017-09-27 19:48


pochodzenie


Zobacz ten post: stackoverflow.com/questions/3512055/... - rodion


Odpowiedzi:


Możesz to zrobić:

os.system("gnome-terminal -e 'bash -c \"sudo apt-get update; exec bash\"'")

12
2017-09-27 19:54



I prawdopodobnie jest tak samo z konsolą (jeśli używam KDE)? - mika29
os.system ("gnome-terminal -e" sudo apt-get update ""). Nie wiem, dlaczego potrzebujesz dodatkowego "bash", kiedy to działa dobrze. - mastash3ff
@ mastash3ff - przeczytaj pytanie. "po zakończeniu aktualizacji terminal się zamknie". Dodatkowe wywołanie bash sprawia, że ​​pozostaje otwarte. - jterrace


Istnieje kilka możliwości:

  • Dodaj ; read -p "Hit ENTER to exit" na końcu wiersza poleceń.
  • Dodaj ; sleep 10 na końcu linii poleceń poczekaj chwilę, a następnie zakończ.
  • Skonfiguruj terminal gnome:

    Przejdź do menu "Edycja" i kliknij "Aktualny profil". Kliknij kartę "Tytuł i polecenie". Tam znajduje się ustawienie o nazwie "Gdy polecenie kończy pracę". Zmień go na "przytrzymaj terminal otwarty". Możesz również utworzyć nowy profil.


4
2017-09-27 19:54





Możesz usunąć -e:

os.system("gnome-terminal 'sudo apt-get update'")

0
2018-03-26 16:06



Nie można tego uruchomić. Musiał użyć opcji -e, jak sugerowano powyżej. - mastash3ff