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 waa
nach umgeleitet log.txt
und trap
während der Ausführung des Skripts die ausgelöst waa
. Die echo
wird 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).