trap echo imprime, no escribe en la consola cuando escribe en un archivo

trap echo imprime, no escribe en la consola cuando escribe en un archivo

Cuando termino "CTRL+C" el siguiente 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

¿El eco de la trampa "GAGA" va a log.txt? ¿Por qué ese comportamiento es así? ¿Muy poco intuitivo?

¡Gracias!

Respuesta1

Redirigió la salida estándar de waaa log.txty activó trapmientras se ejecutaba el script waa. El echose ejecuta en ese contexto.

Si quieres que el eco vaya alconsola, puede intentar redirigirlo al error estándar, por ejemplo,

trap "echo 'GAGA' >&2 " TERM

(a menos que haya redirigido el error estándar al ejecutar el script, eso debería ayudar).

información relacionada