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
[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 ..
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
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.
Tags command-line perl