Comandos de cadeia com Control + C interrupt

2

Estou tentando executar um programa que faz um loop indefinidamente e, portanto, deve ser interrompido à força. Depois de executar o programa, quero apagá-lo. Eu posso fazer isso em várias etapas:

  1. ./MyProg
  2. Controle + C
  3. rm MyProg

mas preciso fazer isso com frequência, por isso gostaria de ter as etapas 1 e 3 em uma única linha para facilitar a recuperação da história.

Eu tentei o seguinte, mas em cada caso a interrupção Controle + C mata a linha inteira, não apenas o programa em execução, e então o arquivo nunca é apagado :

./MyProg && rm MyProg
./MyProg;   rm MyProg
./MyProg || rm MyProg

Como posso fazer com que a interrupção afete apenas o programa em execução e não a linha de comando inteira?

    
por Graham Borland 14.03.2013 / 13:04

1 resposta

3

Você pode usar o mecanismo trap dentro de seu MyProg para limpar depois que o programa estiver saindo.

trap "rm MyProg" EXIT

Se o MyProg não for um script bash, você pode incluir seu programa em um script bash.

    
por 14.03.2013 / 13:14