![写入文件时 trap echo 不打印但不写入控制台](https://linux22.com/image/83629/%E5%86%99%E5%85%A5%E6%96%87%E4%BB%B6%E6%97%B6%20trap%20echo%20%E4%B8%8D%E6%89%93%E5%8D%B0%E4%BD%86%E4%B8%8D%E5%86%99%E5%85%A5%E6%8E%A7%E5%88%B6%E5%8F%B0.png)
当我终止“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
触发。是在该上下文中执行的。trap
waa
echo
如果你想让回声去安慰,您可以尝试将其重定向到标准错误,例如,
trap "echo 'GAGA' >&2 " TERM
(除非您在运行脚本时重定向了标准错误,否则应该有所帮助)。