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?
¿ xterm
Siempre 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
expect
expect
? ¿Cómo? ¿Al pedirle al usuario que escriba su terminal?Respuestas:
No creo que puedas.
xterm
no 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
case
declaraciones.xinit
? No lo he hecho en años, pero eso solía cargar un servidor X simple con unaxterm
ventana 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
which
que es una mala idea )