Qual è il metodo più portatile per lanciare un emulatore di terminale?


14

Di 'che devo scrivere uno script che lanci un terminale ed esegua un comando e che ho bisogno che funzioni su vari sistemi. Come posso farlo in modo sicuro e portatile?

È xtermsempre installato? Suppongo che qualsiasi * nix con una GUI debba avere un emulatore di terminale. Come ci arrivo? Sistemi Debian hanno x-terminal-emulator , ma che, a quanto pare, non funzionano anche in Red Hat, e tanto meno non-Linux * nix.


Questo potrebbe essere fattibile conexpect
Red Cricket,

@RedCricket expect? Come? Chiedendo all'utente di digitare il proprio terminale?
terdon

.. Curioso, perché dovresti farlo? Forse possiamo suggerire una soluzione alternativa.
user606723

@ user606723 curiosità di base, chiedendosi se esiste qualcosa come un emulatore di terminale predefinito definito POSIX o opendesktop (sembra che la risposta sia no). È venuto come una reazione a questa domanda SU.
Terdon

hai davvero bisogno di lanciare un emulatore di terminale o hai solo bisogno di ottenere una shell? Questa è un'esigenza piuttosto diversa.
Lie Ryan,

Risposte:


10

Non penso che tu possa. xtermnon è necessario installarlo ovunque, e probabilmente probabilmente non lo è per impostazione predefinita. Soprattutto quando è in uso un ambiente desktop che fornisce il proprio terminale.

Credo che la cosa migliore è probabilmente quello di verificare l'esistenza di un paio di terminali diversi (ad esempio, xdg-terminal, x-terminal-emulator, gnome-terminal, konsole, xterm). E forse lavorare per ottenere l'aggiunta di xdg-terminal agli standard di FreeDesktop.org.

Quindi scoprirai che terminali diversi hanno modi diversi di eseguire comandi, e talvolta anche versioni diverse dello stesso terminale ... ad esempio, vedi Debian Bug # 648271 .

Probabilmente dovresti anche dare all'amministratore / utente un modo per impostare un comando personalizzato. Sarà sicuramente necessario.


Sì, questo è stato richiesto da una domanda su SU e speravo che ci sarebbe stato un modo più semplice di un mucchio di caseaffermazioni.
terdon

1
@terdon Immagino che il modo semplice sarebbe elencare un terminale abbastanza leggero come un requisito per lo script, quindi usarlo.
derobert,

Che ne dici di quella finestra terminale che appariva quando correvo xinit? Non lo faccio da anni, ma quello caricava un semplice server X con una xtermfinestra vuota (?) Da cui si poteva iniziare la sessione. Ciò non implica che un emulatore di terminale sia installato con X?
terdon

@terdon era una volta, ma poi la gente di xorg ha diviso X in un mucchio di pacchetti. (Quel terminale era probabilmente xterm). Ma un rapido controllo mostra che potrei rimuovere xterm dal mio sistema se volessi.
derobert,

@terdon Questo è xterm, il tradizionale emulatore di terminale X "predefinito". Ma potrebbe non essere sempre installato. IIRC l'installazione di Ubuntu predefinita include solo gnome-terminal, non xterm (e per Kubuntu sarebbe konsole, ecc.).
Gilles 'SO- smetti di essere malvagio' il

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.