trap echo imprime não grava no console ao gravar em arquivo

1

Quando termino "CTRL + C", o seguinte script

#!/bin/bash
function waa(){
    for i in {1..10}
    do
      echo "start.sh: sleeping $i"
      sleep 1s
    done
}

trap "echo 'GAGA'" TERM

waa >> log.txt

o eco do trap "GAGA" vai para log.txt? Por que esse comportamento é assim? Muito pouco intuitivo?

Obrigado!

    
por Gabriel 15.02.2016 / 22:41

1 resposta

2

Você redirecionou a saída padrão de waa para log.txt e acionou o trap enquanto o script estava sendo executado em waa . O echo é executado nesse contexto.

Se você quiser que o eco vá para o console , tente redirecioná-lo para o erro padrão, por exemplo,

trap "echo 'GAGA' >&2 " TERM

(a menos que você tenha redirecionado o erro padrão durante a execução do script, isso deve ajudar).

    
por 15.02.2016 / 23:03