Trap-Echo druckt und schreibt beim Schreiben in eine Datei nicht in die Konsole

Trap-Echo druckt und schreibt beim Schreiben in eine Datei nicht in die Konsole

Wenn ich "STRG+C" beende erscheint folgendes Skript

#!/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

das Trap-Echo "GAGA" geht in log.txt? Warum ist das so? Sehr unintuitiv?

Danke!

Antwort1

Sie haben die Standardausgabe von waanach umgeleitet log.txtund trapwährend der Ausführung des Skripts die ausgelöst waa. Die echowird in diesem Kontext ausgeführt.

Wenn Sie möchten, dass das Echo an dieKonsole, können Sie versuchen, dies auf die Standardfehlermeldung umzuleiten, z. B.

trap "echo 'GAGA' >&2 " TERM

(es sei denn, Sie haben die Standardfehlermeldung während der Ausführung des Skripts umgeleitet. Das sollte helfen).

verwandte Informationen