shell命令trap用法

2021-06-04 11:34:24 字數 1888 閱讀 2361

原文出處:

一. 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) sighup       2) sigint       3) sigquit      4) sigill

5) sigtrap      6) sigabrt      7) sigbus       8) sigfpe

9) sigkill     10) sigusr1     11) sigsegv     12) sigusr2

13) sigpipe     14) sigalrm     15) sigterm     17) sigchld

18) sigcont     19) sigstop     20) sigtstp     21) sigttin

22) sigttou     23) sigurg      24) sigxcpu     25) sigxfsz

26) sigvtalrm   27) sigprof     28) sigwinch    29) sigio

30) sigpwr      31) sigsys      33) sigrtmin    34) sigrtmin+1

35) sigrtmin+2 36) sigrtmin+3 37) sigrtmin+4 38) sigrtmin+5

39) sigrtmin+6 40) sigrtmin+7 41) sigrtmin+8 42) sigrtmin+9

43) sigrtmin+10 44) sigrtmin+11 45) sigrtmin+12 46) sigrtmin+13

47) sigrtmin+14 48) sigrtmin+15 49) sigrtmax-15 50) sigrtmax-14

51) sigrtmax-13 52) sigrtmax-12 53) sigrtmax-11 54) sigrtmax-10

55) sigrtmax-9 56) sigrtmax-8 57) sigrtmax-7 58) sigrtmax-6

59) sigrtmax-5 60) sigrtmax-4 61) sigrtmax-3 62) sigrtmax-2

63) sigrtmax-1 64) sigrtmax

在shell中捕捉訊號的trap命令

1 執行一段程式來處理這一訊號 2 接受訊號的預設操作 3 忽視這一訊號 二.trap對上面三種方式提供了三種基本形式 第一種形式的trap命令在shell接收到signal list清單中數值相同的訊號時,將執行雙 引號中的命令串。trap commands signal list trap co...

shell 使用命令trap來捕捉訊號

一.trap捕捉到訊號之後,可以有三種反應方式 1 執行一段程式來處理這一訊號 2 接受訊號的預設操作 3 忽視這一訊號 二.trap對上面三種方式提供了三種基本形式 第一種形式的trap命令在shell接收到signal list清單中數值相同的訊號時,將執行雙 引號中的命令串。trap comm...

在SHELL中捕捉訊號的TRAP命令

一.trap捕捉到訊號之後,可以有三種反應方式 1 執行一段程式來處理這一訊號 2 接受訊號的預設操作 3 忽視這一訊號 二.trap對上面三種方式提供了三種基本形式 第一種形式的trap命令在shell接收到signal list清單中數值相同的訊號時,將執行雙 引號中的命令串。trap comm...