首頁 > shell教程 閱讀:0更新時間:2020-03-28 02:20:05

Linux Shell trap命令:捕獲信號

trap 命令

tarp命令用于在接收到指定信號后要執行的動作,通常用途是在shell腳本被中斷時完成清理工作。例如:
腳本在執行時按下CTRL+c時,將顯示"program exit..."并退出(CTRL+c的信號是SIGINT)

#!/bin/bashtrap "ehco 'program exit...'; exit 2" SIGINT

....

信號

常用信號

信號名稱信號數描述
SIGINT2程序終止(interrupt)信號, 在用戶鍵入INTR字符(通常是Ctrl+C)時發出。
SIGQUIT3和SIGINT類似, 但由QUIT字符(通常是Ctrl /)來控制. 進程在因收到SIGQUIT退出時會產生core文件, 在這個意義上類似于一個程序錯誤信號。
SIGFPE8在發生致命的算術運算錯誤時發出. 不僅包括浮點運算錯誤, 還包括溢出及除數為0等其它所有的算術的錯誤。
SIGKILL9用來立即結束程序的運行. 本信號不能被阻塞, 處理和忽略。
SIGALRM14時鐘定時信號, 計算的是實際的時間或時鐘時間. alarm函數使用該信號。 SIGTERM

捕獲信號

  • trap的命令語法:

    trap command signal

    這里的command可以是linux命令,或用戶定義的函數。signal信號名稱信號數,可以指定多個信號,以空格相隔。

  • trap在shell常見用途

    腳本在執行時按下CTRL+c時,將顯示"program exit..."并退出(CTRL+c的信號是SIGINT)
    shell trap "ehco 'program exit...'; exit 2" SIGINT

    例:腳本運行時忽略 SIGINT SIGQUIT SIGFPE等信號
    shell trap '' 2 3 8

    • 忽略信號

    • 腳本退出前執行命令


    beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

    通俗易懂,深入淺出,一篇文章只講一個知識點。

    文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

    文章不涉及代碼,不燒腦細胞,人人都可以學習。

    當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

    相關文章

    優秀教程

    国产亚洲欧美日韩