emulador de terminal que se fecha automaticamente após a execução, mas permanece aberto se houver um erro durante a execução

1

Eu tenho um script de construção automática; ele usa um makefile que inicia diferentes scripts de formigas dependendo do alvo.

Eu inicio usando o xterm (eu tenho um atalho na área de trabalho). Funciona bem, mas se eu quiser verificar se a execução foi bem sucedida, não consigo fechar o terminal automaticamente.

Existe um emulador de terminal que não será fechado automaticamente se houver um erro durante a execução?

    
por sherif 21.02.2012 / 12:15

3 respostas

3

Você parece abrir um terminal para executar um comando e fechar o terminal. Este é um fluxo de trabalho altamente incomum fora do mundo do Windows. O fluxo de trabalho usual é ter um terminal aberto permanentemente e executar comandos quando necessário. Ou, quando o comando é um comando de compilação, trabalhe em um IDE e chame o processo de compilação.

Se você insistir em criar um novo terminal a cada vez (uma má ideia, porque isso tornará as mensagens de versões anteriores indisponíveis imediatamente), você pode fazer o terminal aguardar em caso de erro inserindo um fragmento de shell que verifica o status de retorno e aguarda a entrada se houver um erro.

xterm -e sh -c 'ant mytarget || read line'

Se o processo de construção for concluído com sucesso, a janela do terminal será fechada imediatamente. Se o processo de construção falhar, a janela do terminal será fechada depois que você pressionar Enter .

    
por 22.02.2012 / 02:49
3

Portanto, não coloque exit no final do script e / ou verifique o código de retorno ...

    
por 21.02.2012 / 13:59
0

Eu acho que o que o Jiri entende é que você deve usar o xterm, sem -hold, e alterar seu script de construção para sair apenas se ele for concluído com sucesso. Se houver um erro, faça com que seu script de construção pare e aguarde a ativação da tecla pelo usuário. Se o seu script de construção é um script bash, apenas use a instrução read:

read unused_var
    
por 22.02.2012 / 02:40