Linux Shell trap命令捕獲信號實例演示
通過前面內容的學習,我們已經知道,信號多用于以友好的方式結束一個進程的執行,即允許進程在退出之前有機會做一些清理工作。
本文介紹下,有關shell中trap的應用實例,有需要的朋友參考下。
trap可以用在shell腳本接收各種中斷信號。
在shell中針對同個信號不同的函數有不同的處理手法時,可參考如下用例:
復制代碼代碼示例:
#!/bin/bash
#edit by www.jquerycn.cn
trap "_reload $1" 1
_f1(){
echo $$
while((1))
do
date
sleep 0.5
done
}
_f2(){
echo $$
while((1))
do
uptime
sleep 0.5
done
}
_reload(){
[ $1 -eq 2 ]&&echo $$
}
case $1 in
1)
_f1;;
2)
_f2;;
esac
保存為:test.sh。
以上腳本實現了2個函數,_t1和_t2,分別用參數1和2調用:
復制代碼代碼示例:
test.sh 1
test.sh 2
腳本接受kill -1 test.sh_pid時,執行_reload函數,判斷$1等于2時,輸出進程號,否則沒動作。
即只有執行test.sh 2時,接收到kill -1信號才會有動作。
test.sh 1時,kill -1對其沒影響。
beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。
通俗易懂,深入淺出,一篇文章只講一個知識點。
文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。
文章不涉及代碼,不燒腦細胞,人人都可以學習。
當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!