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.
terminal-emulator
portability
terdon
fuente
fuente

expectexpect? ¿Cómo? ¿Al pedirle al usuario que escriba su terminal?Respuestas:
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.
fuente
casedeclaraciones.xinit? No lo he hecho en años, pero eso solía cargar un servidor X simple con unaxtermventana vacía (?) Desde la que podía comenzar su sesión. ¿No implica eso que algún emulador de terminal está instalado con X?Sí, necesitas usar un envoltorio. Hay uno bueno incluido con i3 WM. Explicado aquí: http://build.i3wm.org/docs/i3-sensible-terminal.html
Simplemente copie esto en una función de shell en su script: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal
fuente
whichque es una mala idea )