¿Cuál es el método más portátil para lanzar un emulador de terminal?


14

Digamos que necesito escribir un script que inicie una terminal y ejecute un comando y necesito que funcione en varios sistemas. ¿Cómo puedo hacer eso de una manera segura y portátil?

¿ xtermSiempre está instalado? Supongo que cualquier * nix con una GUI debe tener algún emulador de terminal. ¿Cómo puedo llegar? Los sistemas Debian tienen x-terminal-emulator pero eso, al parecer, ni siquiera funciona en Red Hat, y mucho menos en los no Linux * nixes.


Esto podría ser factible conexpect
Red Cricket

@RedCricket expect? ¿Cómo? ¿Al pedirle al usuario que escriba su terminal?
terdon

.. Curioso, ¿por qué necesitarías hacer esto? Quizás podamos sugerir una solución alternativa.
user606723

@ user606723 curiosidad básica, preguntándose si existe un emulador de terminal predeterminado definido POSIX o opendesktop (parece que la respuesta es no). Vino como una reacción a esta pregunta SU.
terdon

¿realmente necesita iniciar un emulador de terminal, o en realidad solo necesita obtener un shell? Esa es una necesidad bastante diferente allí.
Lie Ryan

Respuestas:


10

No creo que puedas. xtermno es necesario que se instale en todas partes, y de hecho, probablemente no lo sea por defecto Especialmente cuando se utiliza un entorno de escritorio que proporciona su propio terminal.

Creo que lo mejor es, probablemente, para comprobar la existencia de unos terminales diferentes (por ejemplo, xdg-terminal, x-terminal-emulator, gnome-terminal, konsole, xterm). Y tal vez trabajar para conseguir que xdg-terminal se agregue realmente a los estándares de FreeDesktop.org.

Luego, descubrirá que diferentes terminales tienen diferentes formas de ejecutar comandos y, a veces, incluso diferentes versiones del mismo terminal ... por ejemplo, vea Debian Bug # 648271 .

Probablemente también debería darle al administrador / usuario una forma de establecer un comando personalizado. Seguramente será necesario.


Sí, esto fue provocado por una pregunta sobre SU y esperaba que hubiera una forma más simple que un montón de casedeclaraciones.
terdon

1
@terdon Supongo que la forma más sencilla sería enumerar un terminal ligero de dependencia como un requisito para el script, luego simplemente usarlo.
derobert

¿Qué tal esa ventana de terminal que solía aparecer cuando corrí xinit? No lo he hecho en años, pero eso solía cargar un servidor X simple con una xtermventana vacía (?) Desde la que podía comenzar su sesión. ¿No implica eso que algún emulador de terminal está instalado con X?
terdon

@terdon solía ser, pero luego las personas xorg dividieron X en un montón de paquetes. (Ese terminal probablemente era xterm). Pero una comprobación rápida muestra que podría eliminar xterm de mi sistema si quisiera.
derobert

@terdon Eso es xterm, el emulador de terminal X "predeterminado" tradicional. Pero no siempre se puede instalar. IIRC, la instalación predeterminada de Ubuntu incluye solo gnome-terminal, no xterm (y para Kubuntu sería konsole, etc.).
Gilles 'SO- deja de ser malvado'

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.