trap命令用于指定在接收到信号后将要采取的动作,常见的用途是在脚本程序被中断时完成清理工作。当shell接收到sigspec指定的信号时,arg参数(命令)将会被读取,并被执行。
**语法格式:** trap [参数]
**常用参数:**
| -l | 让shell打印一个命令名称和其相对应的编号的列表 |
| ------ | ---------------------------------------------------------- |
| -p | 打印与每一个信号有关联的命令的列表 |
| 缺省 | 每个接收到的sigspec信号都将会被重置为它们进入shell时的值 |
| -f | 阻止中断信号 |
**参考实例**
清理临时文件:
```
[root@anycode ~]$ trap "rm -f $WORKDIR/work1$ $WORKDIR/dataout$; exit" 2
```
忽略信号:
```
[root@anycode ~]$ trap '' 2
```
恢复信号的默认操作:
```
[root@anycode ~]$ trap 2
```
阻止中断操作信号:
```
[root@anycode ~]$ tail -f /var/log/test
```