trap命令用於指定在接收到訊號後將要採取的動作。常見的用途是在指令碼程式被中斷時完成清理工作。我在寫自動公升級指令碼的時候,為防止指令碼執行期間是不能允許其使用ctrl+c等中斷退出的,故使用了trap命令。
一、關於訊號
歷史上,shell總是用數字來代表訊號,而新de指令碼程式應該使用訊號de名字,它們儲存在用#include命令包含進來designal.h標頭檔案中,在使用訊號名時需要省略sig字首。
kill和trap等都可以看到訊號編號及其關聯de名稱。「訊號」是指那些被非同步傳送到乙個程式de事件。預設情況下,它們通常會終止乙個程式de執行。
引用# trap -l
1) sighup 2) sigint 3) sigquit 4) sigill
5) sigtrap 6) sigabrt 7)sigbus 8) sigfpe
9) sigkill 10) sigusr1 11)sigse** 12) sigusr2
13) sigpipe 14) sigalrm 15)sigterm 17) sigchld
18) sigcont 19) sigstop 20)sigtstp 21) sigttin
22) sigttou 23) sigurg 24)sigxcpu 25) sigxfsz
26) si**talrm 27) sigprof 28) sigwinch 29)sigio
例如:# trap 「echo 『hello world』」 hup int quit tstp
這樣,當您執行ctrl+c 等中斷時,會自動執行echo命令,結果就是顯示「helloworld」字串。
linux下採用trap對訊號進行捕捉
在linux中,trap命令主要用於接收訊號並採取行動,訊號是非同步傳送到乙個程式的事件,在預設情況下,可以終止乙個程式,trap命令原型如下 trap command signal signal是指接收到的訊號,command是接收到該訊號採取的行動。如下為兩種簡單的訊號。訊號 說明 int 2 ...
linux下dd和cpio命令
每天筆記都不能當天完成,我想這是件很失敗的事情。我得仔細分析下自己的原因,好在下次能夠當天的筆記當天完成。dd這個命令不得不說它實在是很強大的,我也在網上參考了一些文章,不過都不是詳細,還好相老師講的還是很詳細的,大師就是大師啊。dd是linux unix 下的乙個非常有用的命令,作用是用指定大小的...
Linux下解壓和壓縮命令
純粹為了記一下,常用的幾個命令。命令格式 tar zxvf 壓縮包檔名.tar.gz c 路徑 注釋 解壓.tar.gz格式到指定的目錄下 例如 tar zxvf japan.tar.gz c tmp 命令格式 tar jxvf 壓縮包檔名.tar.bz2 c 路徑 注釋 解壓.tar.bz2格式到...