您所在的位置: 首页 > 开发 > 语言&工具 >

在shell中捕捉信号的命令

http://developer.51cto.com  2005-09-26 17:55    Linux知识宝库  我要评论(0)
  • 摘要:本文介绍了Linux系统下如何在shell中捕捉信号的命令,针对捕捉到信号的三种反应方式提供了三种基本形式
  • 标签:shell  s

一. 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中的变量和命令将用当时具体的值来替换。


Scala编程语言
华山论剑——五款主流服务器OS评测
SUSE——低调的潜伏
SQL Server 2008深度应用
ASP.NET视频教程
 
 验证码: (点击刷新验证码)   匿名发表
  • 亮剑.NET. 图解C#开发实战

  • 作者:李新峰 付志涛 缪勇
  • 本书采用全新的图解思路,分3篇介绍使用微软C#语言开发实际应用程序的基本知识。第1篇包括10章,介绍了C#语言的基础知识,主要..
Copyright©2005-2009 51CTO.COM 版权所有