寫入檔案時 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

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

相關內容