Quando eu encerro "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 da armadilha "GAGA" vai para log.txt? Por que esse comportamento é assim? Muito pouco intuitivo?
Obrigado!
Responder1
Você redirecionou a saída padrão de waa
to log.txt
e acionou trap
enquanto o script estava em execução waa
. O echo
é executado nesse contexto.
Se você quiser que o eco vá para oconsole, você pode tentar redirecioná-lo para o erro padrão, por exemplo,
trap "echo 'GAGA' >&2 " TERM
(a menos que você tenha redirecionado o erro padrão ao executar o script, isso deve ajudar).