Risposte:
Supponendo che il tuo comando venga chiamato mycommand
, cambierei il mio launcher per eseguire questo:
gnome-terminal -e "mycommand|less"
Se vuoi una soluzione più permanente, forse più pulita, apri gnome-terminal, vai su Modifica, Preferenze profilo e fai clic sulla scheda Titolo e Comando. Modificare l'opzione "Quando il comando termina" su "Tenere aperto il terminale".
Quando esegui i comandi, ora dovrebbe lasciare aperto il terminale quando qualcosa è in esecuzione.
Modifica: se non ti interessa davvero il terminale, puoi semplicemente usare il flag di attesa di xterm:
xterm -e "mycommand" hold
Il tuo lanciatore sta eseguendo uno script giusto?
Alla fine del tuo script aggiungi
read -p "Press any key to exit > " -n1 junk
echo
Quindi il tuo script attenderà fino a quando deciderai di terminarlo.
command || read -n1 -p "Command failed. Press any key to exit..."
Nel tuo collegamento .desktop, usa questo
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Al termine dello script, il processo di Bash si sostituirà con una nuova invocazione di se stesso.
Se devi passare argomenti citati al tuo script, devi evitare le virgolette:
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Un approccio leggermente diverso dalle altre risposte: esegui il tuo comando e se fallisce, quindi genera una shell. In questo modo non è necessario tenere aperto il terminale (che non distingue tra successo o fallimento del comando) e potresti trovare quella shell particolarmente utile in caso di fallimento. Per chiuderlo, basta usare Ctrl-D (EOF), "esci", Alt-F4 (o qualunque cosa il tuo gestore di finestre usi per chiudere le finestre), ecc.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
Posiziona questo file da qualche parte, come ~ / bin, quindi usa "success-or-shell il tuo comando originale" nel tuo launcher.
Questa risposta offre la migliore risposta che abbia mai visto fare quello che vuoi. Si consiglia di creare uno script con i comandi per eseguirlo e usarlo con il parametro --init-file (specifico per bash, ma probabilmente si potrebbe fare lo stesso per csh / tcsh / zsh, ecc.):
#!/bin/bash --init-file
commands to run
... ed eseguilo come:
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 il watch
comando
Formato: watch -n60 myCommand
owatch -n60 "my command string"
-n
specificato il numero di secondi di attesa tra le chiamate a myCommand ; es: il comando sopra chiamerà myCommand ogni 60 secondi, per sempre."my command string"
.Supponiamo che tu voglia un Launcher che mostra l'utilizzo del disco e che rimane aperto al lettore. Utilizzerei semplicemente questo comando all'interno del Launcher:,
watch -n60 "df -h"
che chiama df -h
ora ogni 60 secondi.
Mi piace la risposta accettata gnome-terminal -e "mycommand|less"
perché sto eseguendo Xubuntu, che utilizza un terminale diverso per impostazione predefinita.
--tab-with-profile=PROFILENAME
opzione a gnome-terminal . Puoi avere molti profili per diversi bahaviour in questo modo :-)