Respostas:
Supondo que seu comando seja chamado mycommand
, eu mudaria meu iniciador para executar isso:
gnome-terminal -e "mycommand|less"
Se você deseja uma solução mais permanente, talvez mais limpa, abra o gnome-terminal, vá para Editar, Preferências de perfil e clique na guia Título e comando. Altere a opção "Quando o comando sair" para "Mantenha o terminal aberto".
Quando você executa comandos, agora deve deixar o terminal aberto quando algo for executado.
Edit: Se você realmente não se importa com o terminal, você pode apenas usar o sinalizador de espera do xterm:
xterm -e "mycommand" hold
Seu iniciador está executando um script, certo?
No final do seu script, adicione
read -p "Press any key to exit > " -n1 junk
echo
Então, seu script aguardará até você optar por finalizá-lo.
command || read -n1 -p "Command failed. Press any key to exit..."
No seu atalho .desktop, use este
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT; exec $SHELL"
Após a conclusão do script, o processo do Bash será substituído por uma nova chamada.
Se você precisar passar argumentos citados para o seu script, precisará escapar das aspas:
Exec=gnome-terminal -x bash -c "YOUR_SCRIPT \"arg with spaces\"; exec $SHELL"
Uma abordagem ligeiramente diferente das outras respostas: execute seu comando e, se isso falhar, crie um shell. Dessa forma, você não precisa manter o terminal aberto (o que não distingue entre êxito ou falha do comando) e pode achar esse shell particularmente útil em caso de falha. Para fechá-lo, basta usar Ctrl-D (EOF), "exit", Alt-F4 (ou o que o gerenciador de janelas usar para fechar janelas), etc.
#!/bin/sh
[ $# -eq 0 ] && {
echo "$(basename $0): no command" >&2
exit 1
}
"$@" || {
echo "failed: $?"
exec $SHELL
}
Coloque esse arquivo em algum lugar, como ~ / bin, e use "success-or-shell your command original" no seu iniciador.
Essa resposta fornece a melhor resposta que eu já vi até agora para fazer o que você deseja. Eles recomendam criar um script com os comandos para executá-lo e usá-lo com o parâmetro --init-file (específico do bash, mas você provavelmente poderia fazer o mesmo com csh / tcsh / zsh, etc):
#!/bin/bash --init-file
commands to run
... e execute-o 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
Use o watch
comando
Formato: watch -n60 myCommand
ouwatch -n60 "my command string"
-n
especificado o número de segundos a esperar entre as chamadas para myCommand ; ex: o comando acima chamará myCommand a cada 60 segundos, para sempre."my command string"
.Digamos que você queira um Iniciador que exiba o uso do disco e fique aberto para o leitor ver. Eu simplesmente usaria esse comando dentro do Launcher:,
watch -n60 "df -h"
que chama df -h
agora a cada 60 segundos.
Eu gosto disso com a resposta aceita gnome-terminal -e "mycommand|less"
porque estou executando o Xubuntu, que usa um terminal diferente por padrão.
--tab-with-profile=PROFILENAME
opção gnome-terminal . Você pode ter muitos perfis para bahaviours diferentes desta forma :-)