在shell中捕捉訊號的命令(轉)
在shell中捕捉訊號的命令(轉)[@more@]一. trap捕捉到訊號之後,可以有三種反應方式:
(1)執行一段程式來處理這一訊號
(2)接受訊號的預設操作
(3)忽視這一訊號
二. trap對上面三種方式提供了三種基本形式:
第一種形式的trap命令在shell接收到signal list清單中數值相同的訊號時,將執行雙引號中的命令串。
trap 'commands' signal-list
trap "commands" signal-list
為了恢復訊號的預設操作,使用第二種形式的trap命令:
trap signal-list
第三種形式的trap命令允許忽視訊號
trap " " signal-list
注意:
(1) 對訊號11(段違例)不能捕捉,因為shell本身需要捕捉該訊號去進行記憶體的轉儲。
(2) 在trap中可以定義對訊號0的處理(實際上沒有這個訊號), shell程式在其終止(如執行exit語句)時發出該訊號。
(3) 在捕捉到signal-list中指定的訊號並執行完相應的命令之後, 如果這些命令沒有將shell程式終止的話,shell程式將繼續執行收到訊號時所執行的命令後面的命令,這樣將很容易導致shell程式無法終止。
另外,在trap語句中,單引號和雙引號是不同的,當shell程式第一次碰到trap語句時,將把commands中的命令掃描一遍。此時若commands是用單引號括起來的話,那麼shell不會對commands中的變數和命令進行替換, 否則commands中的變數和命令將用當時具體的值來替換。
(1)執行一段程式來處理這一訊號
(2)接受訊號的預設操作
(3)忽視這一訊號
二. trap對上面三種方式提供了三種基本形式:
第一種形式的trap命令在shell接收到signal list清單中數值相同的訊號時,將執行雙引號中的命令串。
trap 'commands' signal-list
trap "commands" signal-list
為了恢復訊號的預設操作,使用第二種形式的trap命令:
trap signal-list
第三種形式的trap命令允許忽視訊號
trap " " signal-list
注意:
(1) 對訊號11(段違例)不能捕捉,因為shell本身需要捕捉該訊號去進行記憶體的轉儲。
(2) 在trap中可以定義對訊號0的處理(實際上沒有這個訊號), shell程式在其終止(如執行exit語句)時發出該訊號。
(3) 在捕捉到signal-list中指定的訊號並執行完相應的命令之後, 如果這些命令沒有將shell程式終止的話,shell程式將繼續執行收到訊號時所執行的命令後面的命令,這樣將很容易導致shell程式無法終止。
另外,在trap語句中,單引號和雙引號是不同的,當shell程式第一次碰到trap語句時,將把commands中的命令掃描一遍。此時若commands是用單引號括起來的話,那麼shell不會對commands中的變數和命令進行替換, 否則commands中的變數和命令將用當時具體的值來替換。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-946064/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell訊號捕捉命令 trap
- 使用命令trap來捕捉訊號(轉)
- Python捕捉系統訊號Python
- EXCEPTION裡捕捉行號(轉)Exception
- Linux訊號捕捉之sigactionLinux
- shell的命令(轉)
- shell中set命令詳解(轉)
- 在shell中執行SQL*Plus命令SQL
- Linux系統程式設計—訊號捕捉Linux程式設計
- Linux系統程式設計:訊號捕捉Linux程式設計
- Linux的kill命令與訊號控制(轉)Linux
- zsh 命令在 alias 中如何轉義 ' 字元(單引號)字元
- Shell 符號(轉)符號
- 在 Ruby 中執行 Shell 命令的 6 種方法
- shell中的特殊符號符號
- 我使用過的Linux命令之trap - 在指令碼中處理訊號Linux指令碼
- 在Linux中,bash shell 中的 hash 命令有什麼作用?Linux
- 在 docker 容器中捕獲訊號Docker
- EXCEPTION裡捕捉行號Exception
- mongo shell中特殊判斷符號轉義的問題Go符號
- 訊號課組(一) 訊號與系統 Part 0 MATLAB在訊號與系統中的使用Matlab
- 在shell中表示昨天、明天的命令
- Linux Shell的訊號trap功能細節Linux
- shell命令中的萬用字元字元
- shell 中read命令的使用
- shell中的點命令與source命令的區別
- Linux Shell 中的反引號,單引號,雙引號Linux
- Shell命令列中的特殊字元及其轉義(去除特殊含義)命令列字元
- [shell問答錄]:命令、程式、子shell...(轉)
- 在DELPHI程式中撥號上網 (轉)
- shell中擴充套件命令套件
- shell 中 grep、sed、awk 命令
- shell中grep命令詳解
- 在Qml 中定義訊號並如何觸發
- LeCun:深度學習在訊號理解中的強大和侷限(視訊+PPT)LeCun深度學習
- Linux Shell之sort命令(轉)Linux
- BASH shell set命令詳解(轉)
- 快速編輯 Shell 命令列(轉)命令列