Shell

寫入文件時,陷阱回顯不列印到控制台

  • February 15, 2016

當我終止“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?為什麼會有這樣的行為?很不直覺?

謝謝!

您已將標準輸出重定向waa到,並在腳本執行時log.txt觸發。在該上下文中執行。trap``waa``echo

如果您希望 echo 轉到控制台,您可以嘗試將其重定向到標準錯誤,例如,

trap "echo 'GAGA' >&2 " TERM

(除非您在執行腳本時重定向了標準錯誤,否則應該會有所幫助)。

引用自:https://unix.stackexchange.com/questions/263489