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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27785870/viewspace-2214730/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux系統指令碼中trap訊號都有哪些?Linux運維Linux指令碼運維
- linux trapLinux
- Linux Shell 單引號 雙引號 使用區別Linux
- linux shell 指令碼語言教程(超詳細!)Linux指令碼
- 深度解密HTTP通訊細節解密HTTP
- Linux Shell中各種括號用法總結!Linux
- linux 訊號機制Linux
- Linux中訊號量的實現Linux
- Linux中的System V訊號量Linux
- MySQL的一些功能實用的Linux shell指令碼分享MySqlLinux指令碼
- Linux Shell程式設計(1) – Bash 的基本功能:別名、快捷鍵、歷史命令、輸出重定向、管道符、Shell中特殊符號Linux程式設計符號
- Linux訊號(signal)機制Linux
- linux 訊號與處理Linux
- linux中的訊號處理與SROPLinux
- Linux ShellLinux
- SNMP Trap 除錯除錯
- Linux 下的程式間通訊:套接字和訊號Linux
- Linux中atime,ctime與mtime的細節疑問總結Linux
- Linux的shell環境Linux
- Linux:査看檔案的詳細資訊Linux
- 【Linux系統程式設計】Linux訊號列表Linux程式設計
- 什麼是shell?Linux常用的shell有哪些?Linux
- Shell 括號總結
- 慢慢細談Android 面試的細節Android面試
- Linux下Shell日期的格式Linux
- linux常用的shell指令碼Linux指令碼
- 【linux】Shell中的運算子Linux
- 星球MetaX智慧合約系統DAPP開發(功能細節)APP
- 運維中資料泵匯出常用的細節小功能兩例運維
- 解析Linux訊號集操作函式Linux函式
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- 小細節
- EfficientNet模型的完整細節模型
- Linux 程式間通訊之System V 訊號量Linux
- Linux Mint 專案負責人宣佈了Linux Mint 21的一些細節Linux
- shell郵件功能-2
- 分享運維中資料泵匯出常用的細節小功能兩例運維
- linux shell指令碼中 =~ 的作用Linux指令碼