标签:脚本 commands signals 命令 trap 信号
一:用途说明
trap命令是shell内建的命令,它用在脚本中指定信号如何处理。
比如,按Ctrl+C会使脚本终止执行,实际上系统发送了SIGINT信号给脚本进程,SIGINT信号的默认处理方式就是退出程序。如果要在Ctrl+C不退出程序,那么就得使用trap命令来指定一下SIGINT的处理方式了。
trap命令不仅仅处理Linux信号,还能对脚本退出(EXIT)、调试(DEBUG)、错误(ERR)、返回(RETURN)等情况指定处理方式。
二:常见参数
1:trap "commands" signals
当shell接收到signals指定的信号时,执行commands命令。
2:trap signals
如果没有指定命令部分,那么就将信号处理复原。比如 trap INT 就表明恢复Ctrl+C退出。
3:trap "" signals
忽略信号signals,可以多个,比如 trap "" INT 表明忽略SIGINT信号,按Ctrl+C也不能使脚本退出。又如 trap "" HUP 表明忽略SIGHUP信号,即网络断开时也不能使脚本退出。
4:trap -p
将当前的tarp设置打印出来。
5:trap -l
把所有信号打印出来。
6:trap "commands" EXIT
脚本退出时执行commands指定的命令。
7:trap "commands" DEBUG
在脚本执行时打印调试信息,比如打印将要执行的命令及参数列表。
8:trap "commands" ERR
当命令出错,退出码非0,执行commands指定的命令。
9:trap "commands" RETURN
当从shell函数返回、或者使用source命令执行另一个脚本文件时,执行commands指定的命令。
标签:脚本,commands,signals,命令,trap,信号 来源: https://blog.51cto.com/u_14841814/2869614
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。