日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

trap--shell脚本调试的不二人选

發布時間:2025/3/15 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 trap--shell脚本调试的不二人选 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

trap簡介

trap的格式如下,功能就是捕捉信號,并對信號進行處理

trap [-lp] [[arg] sigspec ...]
  • arg可以是shell命令或者自定義函數
  • sigspec可以是以下的一個或多個
  • 定義在<signal.h>中的信號名或者數值。信號名的大小寫不敏感,SIG這個前綴也是可選的。以下的命令的效果都是一樣的
trap "echo SIGINT" SIGINT trap "echo SIGINT" sigint trap "echo SIGINT" 2 trap "echo SIGINT" int trap "echo SIGINT" Int

調試腳本時,trap經常用到的信號量

  • EXIT:在shell退出前執行trap設置的命令,也可以指定為0
  • RETURN:在.和``source執行其他腳本返回時,執行trap`設置的命令
  • DEBUG:在任何命令執行前執行trap設置的命令,但對于函數僅在函數的第一條命令前執行一次
  • ERR:在命令結果為非0時,執行trap設置的命令
#! /bin/bash # 使用trap實現在每個函數開始之前打印以便打印,這樣就能準確的定位到函數的位置 # 從而實現對腳本的調試 trap "echo before a func is called" DEBUG # 當. 或者 source 調用結束的時候出發 trap "echo . or source is called " RETURN func() {echo "不管你信不信,這是一個函數"exit 0 } # 測試 echo "call ." . traptest# 函數的調用 func # DEBUG 查看調試信號是否有效的設置了 # trap -p RETURN # trap -p DEBUGexit 0

執行結果

andrew@andrew-Thurley:/work/linux-sys/bash/2.基本/src$ bash trap_func.sh before a func iis called before a func iis called call . before a func iis called . or source is called before a func iis called 不管你信不信,這是一個函數
  • trap -l:列出所有信號的數值和名字,類似于kill -l
andrew@andrew-Thurley:~$ trap -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 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 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+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
  • trap -p:列出通過trap設置過的信號處理命令
andrew@andrew-Thurley:~$ trap -p trap -- 'name ' SIGINT trap -- '' SIGTSTP trap -- '' SIGTTIN trap -- '' SIGTTOU trap -- 'name ' RETURN trap "" sigspec :忽略sigspec指定的信號 trap "do something" sigspec:收到sigspec指定的信號時,do some thing后,繼續執行后續命令。 trap sigspec or trap - sigspec:恢復sigspec指定的信號的默認行為

注意

  • 在函數中設置的trap也是全局生效的
#!/bin/bash # trap設置在函數中的tap也是全局有效的 foo() { trap "echo func is called" DEBUG }# 輸出 func is called foo # 調試觸發 #trap -p DEBUG # 輸出trap -- 'echo func is called' SIGINT exit 0
  • 對于同一個信號,只有最后一次trap生效
  • trap只在本進程內有效,它的子進程不會繼承trap的設置。

使用trap設計一個用于反應程序執行過程的腳本

#!/bin/bash # 使用trap來捕捉變量值.# EXIT代表在函數退出前,執行trap trap 'echo Variable Listing --- ret=${ret}' EXITps -A if [ $? == 0 ];thenecho "commond exec OK!"ret=0 elseret=1 fiecho "注意這里,還沒有調用trap"# trap是在退出的時候清理程序時調用的 exit 0

關注,沒有廣告,還能要資料

總結

以上是生活随笔為你收集整理的trap--shell脚本调试的不二人选的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品永久在线观看 | 一区二区在线视频播放 | 不卡久久 | 亚洲一区二区三区加勒比 | 免费网站www在线观看 | 日韩激情中文字幕 | 亚洲免费福利视频 | 免费成人结看片 | 久久久精品日本 | 一区二区视频免费观看 | 精品无码一区二区三区的天堂 | 精品人妻aV中文字幕乱码色欲 | 亚洲欧洲av | 久久影视中文字幕 | 午夜激情免费 | 伊人网中文字幕 | 国产精品卡一卡二 | 狠狠干一区二区 | 成人写真福利网 | 免费人妻一区二区三区 | 日韩激情片 | 日韩欧美亚洲综合 | 97超碰在线免费 | 国产精品500部 | 国产一区二区欧美 | 波多野结衣一区二区三区高清 | 熟女视频一区二区三区 | 国产精品久久久久一区二区 | 欧美一级黄色片 | 男人天堂2021 | 国产主播福利 | 欧美混交群体交 | 欧美怡红院一区二区三区 | 日韩福利视频一区 | 欧美三级黄色大片 | 视频一区二区在线播放 | 无码国产色欲xxxxx视频 | 91精品国产色综合久久不卡电影 | 中文字幕欧美在线 | 国产丝袜一区二区三区 | 日韩福利网 | 一区二区在线免费观看视频 | 国产黑丝在线播放 | 在线观看免费大片 | av鲁丝一区鲁丝二区鲁丝三区 | 不卡视频在线播放 | 椎名空在线 | 日韩精品一区二区三区久久 | 国产日视频 | 亚洲做受高潮 | 福利所第一导航 | 一二区在线观看 | 久久天天东北熟女毛茸茸 | 黄色香港三级三级三级 | 青青草视频偷拍 | 欧美另类国产 | sese视频在线观看 | 精品免费国产 | 中文精品久久 | 日日草日日干 | 人体写真 福利视频 | 日韩一级片网址 | 日本一区二区黄色 | 国产一级片播放 | 国产一区二区在线免费 | 韩国理论午夜 | 色一情一伦一子一伦一区 | 久久久久久久久久影院 | www.午夜激情 | 噜噜噜精品欧美成人 | 成人免费a视频 | 超碰国产人人 | 人妻饥渴偷公乱中文字幕 | 伊人国产女 | 麻豆蜜臀 | 亚洲天堂成人网 | 日韩在线不卡av | 99一级片| 午夜老司机免费视频 | 天天综合亚洲 | 超碰c| 国产一区二区免费视频 | 午夜一区二区三区在线观看 | 免费看黄色片视频 | 五月激情在线 | 欧美性生交xxxxx久久久 | 日本理论中文字幕 | 欧美国产乱视频 | 少妇被又大又粗又爽毛片久久黑人 | 中国少妇做爰全过程毛片 | 奇米影视欧美 | 国产做受69 | 天堂在线 | 中文字幕岛国 | 综合激情亚洲 | 日日噜夜夜噜 | 欧美黄片一区二区三区 | 日本一区免费电影 | www国产在线观看 |