Powiedz, że muszę napisać skrypt, który uruchomi terminal i wykona polecenie, i potrzebuję go do pracy na różnych systemach. Jak mogę to zrobić w bezpieczny i przenośny sposób?
Czy xterm
zawsze jest zainstalowany? Zakładam, że każdy * nix z GUI musi mieć emulator terminala. Jak mogę się do tego dostać? Systemy Debian mają, x-terminal-emulator
ale najwyraźniej nie działa nawet w Red Hat, nie mówiąc już o innych niż Linux * komponentach.
terminal-emulator
portability
terdon
źródło
źródło
expect
expect
? W jaki sposób? Pytając użytkownika o wpisanie terminala?Odpowiedzi:
Nie sądzę, że możesz.
xterm
nie muszą być instalowane wszędzie i rzeczywiście prawdopodobnie nie są domyślnie. Zwłaszcza gdy używane jest środowisko pulpitu, które zapewnia własny terminal.Myślę, że najlepiej będzie prawdopodobnie w celu sprawdzenia istnienia kilku różnych terminali (powiedzmy
xdg-terminal
,x-terminal-emulator
,gnome-terminal
,konsole
,xterm
). I może staramy się, aby xdg-terminal faktycznie został dodany do standardów FreeDesktop.org.Następnie przekonasz się, że różne terminale mają różne sposoby uruchamiania poleceń, a czasem nawet różne wersje tego samego terminala ... np. Zobacz Bug Debian # 648271 .
Prawdopodobnie powinieneś także dać administratorowi / użytkownikowi możliwość ustawienia niestandardowego polecenia. To na pewno będzie potrzebne.
źródło
case
stwierdzeń.xinit
? Nie robiłem tego od lat, ale zwykło to ładować prosty serwer X z pustymxterm
(?) Oknem, z którego można rozpocząć sesję. Czy to nie oznacza, że jakiś emulator terminala jest zainstalowany z X?Tak, musisz użyć opakowania. Jest dobra wersja dołączona do i3 WM. Wyjaśniono tutaj: http://build.i3wm.org/docs/i3-sensible-terminal.html
Po prostu skopiuj to do funkcji powłoki w swoim skrypcie: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal
źródło
which
co jest złym pomysłem )