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

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%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩