写入文件时 trap echo 不打印但不写入控制台

写入文件时 trap echo 不打印但不写入控制台

当我终止“CTRL+C”时,以下脚本

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

陷阱回声“GAGA”转到log.txt?为什么会有这样的行为?很不直观?

谢谢!

答案1

您已将 的标准输出重定向waa到,并在脚本执行时log.txt触发。是在该上下文中执行的。trapwaaecho

如果你想让回声去安慰,您可以尝试将其重定向到标准错误,例如,

trap "echo 'GAGA' >&2 " TERM

(除非您在运行脚本时重定向了标准错误,否则应该有所帮助)。

相关内容