溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux的trap命令怎么使用

發布時間:2022-01-21 19:17:44 來源:億速云 閱讀:479 作者:iii 欄目:開發技術

本篇內容介紹了“Linux的trap命令怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Linux的trap命令怎么使用

Linux常用命令trap命令用于指定在接收到信號后將要采取的動作,常見的用途是在腳本程序被中斷時完成清理工作。

1. Linux信號

Linux系統利用信號與系統中的進程進行通信。Linux的常見信號有:

信號描述
1SIGHP掛起進程
2SIGINT終止進程
3SIGQUIT停止進程
9SIGKILL無條件終止進程
15SIGTERM盡可能終止進程
17SIGSTOP無條件停止進程,但不是終止進程
18SIGTSTP停止或暫停進程,但不終止進程
19SIGCONT繼續運行停止的進程

2. 信號組合鍵

Ctrl+C組合鍵會產生SIGINT信號,Ctrl+Z會產生SIGTSTP信號。

3. trap命令

trap命令允許你來指定shell腳本要監視并攔截的Linux信號。trap命令的格式為:trap commands signals。

demo1

shell腳本:

#!/bin/bash# test trap commandtrap "echo 'Sorry! I have trapped Ctrl-C'" SIGINTecho This is a test script

count=1while [ $count -le 10 ]do  echo "Loop $count"  sleep 1
  count=$[ $count + 1 ]doneecho The end.

運行結果:

This is a test scriptLoop 1Loop 2^CSorry! I have trapped Ctrl-CLoop 3Loop 4^CSorry! I have trapped Ctrl-CLoop 5Loop 6Loop 7Loop 8^CSorry! I have trapped Ctrl-CLoop 9Loop 10The end.

demo2

除了在shell腳本中捕獲信號外,也可以在shell退出時捕獲,在trap命令后加上EXIT信號就行。

shell腳本:

#!/bin/bash# test trap commandtrap "echo Goodbye." EXITecho This is a test script

count=1while [ $count -le 10 ]do  echo "Loop $count"  sleep 1
  count=$[ $count + 1 ]doneecho The end.

運行結果:

This is a test script
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
Loop 7
Loop 8
Loop 9
Loop 10
The end.
Goodbye.

demo3——修改trap操作

#!/bin/bash# test trap commandtrap "echo 'Sorry! I have trapped Ctrl-C'" SIGINT

count=1while [ $count -le 5 ]do  echo "Loop $count"  sleep 1
  count=$[ $count + 1 ]donetrap "echo 'Sorry! The trap has been modified.'" SIGINT

count=1while [ $count -le 5 ]do  echo "Loop $count"  sleep 1
  count=$[ $count + 1 ]doneecho The end.

運行結果:

Loop 1Loop 2Loop 3^CSorry! I have trapped Ctrl-CLoop 4Loop 5Loop 1Loop 2Loop 3^CSorry! The trap has been modified.Loop 4Loop 5The end.

demo4

刪除捕獲,命令形式為:trap -- ***,例如trap -- SIGINT

“Linux的trap命令怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女