Respuestas:
Suponiendo que se llame a su comando mycommand
, cambiaría mi lanzador para ejecutar esto:
gnome-terminal -e "mycommand|less"
Si desea una solución más permanente, quizás más limpia, abra gnome-terminal, vaya a Editar, Preferencias de perfil y haga clic en la pestaña Título y comando. Cambie la opción "Cuando el comando sale" a "Mantener el terminal abierto".
Cuando ejecuta comandos, ahora debe dejar el terminal abierto cuando algo se ejecuta.
Editar: Si realmente no te importa la terminal, puedes usar la bandera de espera de xterm:
xterm -e "mycommand" hold
Su lanzador está ejecutando un script ¿verdad?
Al final de su script agregue
read -p "Press any key to exit > " -n1 junk
echo
Entonces su script esperará hasta que elija finalizarlo.
command || read -n1 -p "Command failed. Press any key to exit..."
En su acceso directo .desktop, use esto
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Una vez que haya finalizado su secuencia de comandos, el proceso Bash se reemplazará con una nueva invocación de sí mismo.
Si necesita pasar argumentos entrecomillados a su script, debe escapar de las comillas:
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Un enfoque ligeramente diferente de las otras respuestas: ejecuta tu comando y, si eso falla, genera un shell. De esta manera, no tiene que mantener abierto el terminal (que no distingue entre el éxito o el fracaso del comando), y puede encontrar que ese shell es particularmente útil en caso de error. Para cerrarlo, simplemente use Ctrl-D (EOF), "salir", Alt-F4 (o lo que sea que su administrador de ventanas use para cerrar ventanas), etc.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
Coloque este archivo en algún lugar, como ~ / bin, luego use "success-or-shell your original command" en su lanzador.
Esta respuesta da la mejor respuesta que he visto hasta ahora para hacer lo que quieres. Recomiendan hacer un script con los comandos para ejecutar y usarlo con el parámetro --init-file (bash específico, pero probablemente podría hacer lo mismo para csh / tcsh / zsh, etc.):
#!/bin/bash --init-file
commands to run
... y ejecutarlo como:
xterm -e /path/to/script
# or
gnome-terminal -e /path/to/script
# or
the-terminal -e bash --init-file /path/to/script/with/no/shebang
Usa el watch
comando.
Formato: watch -n60 myCommand
owatch -n60 "my command string"
-n
especificado el número de segundos para esperar entre llamadas a myCommand ; Ej: el comando anterior llamará a myCommand cada 60 segundos, para siempre."my command string"
.Supongamos que desea un Iniciador que muestre el uso del disco y permanezca abierto para que el lector lo vea. Simplemente usaría este comando dentro del Lanzador:
watch -n60 "df -h"
que llama df -h
ahora cada 60 segundos.
Me gusta esto sobre la respuesta aceptada de gnome-terminal -e "mycommand|less"
porque estoy ejecutando Xubuntu, que utiliza un terminal diferente por defecto.
--tab-with-profile=PROFILENAME
opción gnome-terminal . Puede tener muchos perfiles para diferentes comportamientos de esta manera :-)