您好,登錄后才能下訂單哦!
這篇文章給大家介紹Linux Shell的信號trap功能細節有哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
它有三種形式分別對應三種不同的信號回應方式.
第一種:
trap 'commands' signal-list 當腳本收到signal-list清單內列出的信號時,trap命令執行雙引號中的命令.
第二種:
trap signal-list
trap 不指定任何命令,接受信號的默認操作.默認操作是結束進程的運行.
第三種:
trap ' ' signal-list
trap 命令指定一個空命令串,允許忽視信號.
NOTE:trap 對同種signal只能相應一種設定,如果在一個shell里面設置多個trap,那么它只會響應最后一個信號設定。
如:
trap ' echo “aaaaaaaaaaa” ' INT
trap ' echo “bbbbbbbbbbb” ' INT
那么它只會響應最后一個信號設定。
如下X/Open規范里面規定的能夠被捕獲的比較重要的一些信號(括號里面的數字是傳統的信號編號)
trap命令常見的用途在于腳本程序中斷時完成清理工作,比如臨時文件等.
trap命令舉例
eg 1:
[root@xyhl ~]# trap "echo aaaaaa" 2
[root@xyhl ~]# ^Caaaaaa ==》執行ctrl+c,捕獲到信號2,將執行打印
eg 2: 如果遇到INT中斷,即Ctrl+c,即刪除該文件
#!/bin/bash
trap 'rm -f /tmp/my_tmp_file_$$' INT
echo "creating file /tmp/my_tmp_file_$$"
date > /tmp/my_tmp_file_$$
echo "press interrupt (CTRL-C) to interrupt ......"
while [ -f /tmp/my_tmp_file_$$ ];
do
echo "File exists"
sleep 3
done
echo" we never get here"
exit 0
關于Linux Shell的信號trap功能細節有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。