Como se livrar da mensagem “Alarm clock” no timeout do perl?

2
[user@notebook ~] time perl -e 'alarm shift @ARGV; exec @ARGV' 1 sleep 2
Alarm clock

real    0m1.004s
user    0m0.004s
sys 0m0.000s
[user@notebook ~] 

Minha pergunta: como posso me livrar dessa mensagem "Despertador"? Eu só quero terminar um processo após determinado tempo com um perl oneliner ..

    
por gasko peter 12.12.2013 / 20:19

2 respostas

4

Essa mensagem é do bash, não do Perl.

Uma maneira é executá-lo em uma subshell:

$ ( time perl -e 'alarm shift @ARGV; exec @ARGV' 1 sleep 2 )

real    0m1.004s
user    0m0.003s
sys 0m0.000s
    
por 12.12.2013 / 20:22
1

Se você quiser executar um comando com um tempo limite, tente o comando timeout e evite reinventar a roda:

timeout 2 sleep 3

Se você receber um código de saída de 124, o tempo acabou. Caso contrário, você obterá o código de saída do comando executado.

Faz parte do pacote GNU coreutils , é provável que você já o tenha.

    
por 19.12.2013 / 00:43