shell编程之trap命令
2024-09-06 07:27:43
trap command signal
trap捕获信号(软中断),command一般是linux命令 若为' '表示发生陷阱时为空指令,'-'表示发生陷阱时采用缺省指令
signal:
HUP(1) 挂起;一般因终端掉线或用户退出而引发
INT(2)中断;一般因按下"Ctrl+C"组合键引发
QUIT(3) 退出;一般因按下"Ctrl+\"组合键引发
ABRT(6) 异常终止;一般因某些严重的执行错误而引发
ALRM(14) 闹钟;一般是超时时钟到来而引发
TREM(15) 终止;一般是由系统在关机时发出
trap只是对信号的操作进行关联(安装信号)
1 #! /bin/bash
2
3 trap "rm -f tmp$$;exit 0" 2 3 #$$表示的是当前进程号,捕获2,3号信号
4 touch tmp$$
5 sleep 60
下面看一个锁屏程序:
1#! /bin/bash
2
3 trap "nice_try" 2 3 15
4 TTY=`pwd`
5
6 nice_try()
7 {
8 echo -e "\nNice try,the terminal stays locked"
9 }
10
11 #stty -echo #输入的密码不回显
12
13 echo -n "Enter your password to lock $TTY: "
14 read PASSWORD
15 clear
16 echo -n "Enter you password to unlock $TTY: "
17 while :
18 do
19 read RESPONSE
20 if [ "$RESPONSE" = "$PASSWORD" ];then
21 echo "unlocking..."
22 break
23 fi
24 clear
25 echo "wrong password and terminal is locked..."
26 echo -n "Enter your password to unlock $TTY: "
27 done
28
29 #stty echo #恢复回显
最新文章
- mysql中event的用法详解
- NEFU 561 方块计算
- Microsoft SQL Server,错误: 229 解决方案
- UVALive 5903 Piece it together(二分图匹配)
- Codeforces Round #366 Div.2[11110]
- iOS——百度统计
- encodeURIComponent编码2次
- Fedora 21 中添加及更新源的命令
- [Firebase] Deploy you website to Firebase
- CSS美化页面滚动条
- PL/SQL 游标的使用
- 跨web浏览器的IC卡读卡器解决方案
- 【SAP HANA】新建账户和数据库(2)
- js电子表
- (三)类数组对象 NamedNodeMap简单介绍
- ue4 socket
- DELPHI中完成端口(IOCP)的简单分析(3)
- python版 mapreduce 矩阵相乘
- Python中的基本数据类型的区别
- set函数&;操作
热门文章
- python练习三角形,99乘法
- 基于Python的接口自动化实战-基础篇之读写配置文件
- BOOST库 消息队列
- linux(centos8):阿里云ecs配置smtps发邮件(解决不能通过25端口发邮件问题)
- 【应用服务 App Service】当遇见某些域名在Azure App Service中无法解析的错误,可以通过设置指定DNS解析服务器来解决
- java8中哪个类用到了开放地址解决冲突
- nginx负载均衡常见问题配置信息
- D. Equalize the Remainders 解析(思維)
- D. Maximum Distributed Tree 解析(思維、DFS、組合、貪心、DP)
- Mongodb命令 --- MongoDB基础用法(二)