Linux trap(捕捉) 命令

trap 命令用於指定在接收到信號後將要採取的行動;

trap 命令的參數分爲兩部分,前一部分是接收到指定信號時將要採取的行動,後一部分是要處理的信號名。而且必須在你想保護的那部分代碼以前指定trap命令。

格式:trap commands signal-list

例如:trap "cp -f /etc/resolv.conf.bak /etc/resolv.conf;exit"  INT 

 ..........................................

信 號(SIGINT)說 明
HUP(1)掛起,通常因終端掉線或用戶退出而引發
INT(2)中斷,通常因按下Ctrl+C組合鍵而引發
QUIT(3)退出,通常因按下Ctrl+/組合鍵而引發
ABRT(6)中止,通常因某些嚴重的執行錯誤而引發
ALRM(14)報警,通常用來處理超時
TERM(15)終止,通常在系統關機時發送


INT 就是中斷信號(linux 中是ctrl-C,SCO unix 中是"del"鍵)

trap 就是捕捉信號,與所提供的arg聯繫起來,就是當捕捉到某個信號時執行arg規定的動作。

#!/bin/bash

trap "echo -e \"\nreceive int\n\";exit" INT

while :

do

((i++))

done

由於是死循環,不會退出,按下ctrl-c鍵後,程序會顯示,receive int,並退回$狀態。當arg爲空時表示忽略後面指出的信號

trap -p

可顯示信號關聯的命令。請指正。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章