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.