论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
大数据
›
数据仓库与分析
›
shell脚本中捕获键盘中断信号trap
shell脚本中捕获键盘中断信号trap
海哥
论坛元老
|
2025-4-9 05:40:13
|
显示全部楼层
|
阅读模式
楼主
主题
1594
|
帖子
1594
|
积分
4782
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
在 Shell 脚本中,可以通过 trap 下令捕获键盘中断信号(通常是 SIGINT,即 Ctrl+C)。以下是具体的实现方法:
1.使用 trap 捕获键盘中断信号
trap 下令用于捕获信号并执行相应的下令或函数。SIGINT(信号编号为 2)是键盘中断信号。
2.示例脚本
以下是一个捕获键盘中断信号的示例脚本:
#!/bin/bash
# 定义一个处理键盘中断的函数
handle_interrupt() {
echo "键盘中断信号被捕获,正在清理资源..."
# 在这里执行清理操作,例如关闭文件、释放资源等
echo "资源已清理,脚本退出。"
exit 0
}
# 捕获 SIGINT 信号
trap handle_interrupt SIGINT
# 模拟一个长时间运行的任务
echo "脚本正在运行,按 Ctrl+C 中断..."
while true; do
sleep 1
done
复制代码
3.脚本阐明
handle_interrupt 函数:
当捕获到 SIGINT 信号时,执行这个函数。
在这个函数中,可以执行清理操作,比方关闭文件、开释资源等。
trap handle_interrupt SIGINT:
trap 下令用于捕获信号。
handle_interrupt 是要执行的函数。
SIGINT 是要捕获的信号(键盘中断信号)。
主循环:
脚本进入一个无限循环,模拟长时间运行的任务。
当用户按下 Ctrl+C 时,SIGINT 信号被捕获,执行 handle_interrupt 函数。
4.运行脚本
将上述脚本生存为 script.sh,然后运行:
chmod +x script.sh
./script.sh
复制代码
运行后,按下 Ctrl+C,脚本会捕获键盘中断信号并执行清理操作。
5.规复默认举动
如果必要在捕获信号后规复默认举动(比方直接退出脚本),可以在 trap 中重新设置信号处置惩罚为默认举动:
trap SIGINT # 恢复默认行为
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
海哥
论坛元老
这个人很懒什么都没写!
楼主热帖
makefile简单脚本编写和Linux调试器gdb ...
【第90题】JAVA高级技术-网络编程9(简 ...
CMOS图像传感器——黑电平校正 ...
TCP 时间戳妙用
windows提权-系统错误配置提权 ...
什么是精准卫星授时?什么是NTP网络时 ...
C++ 深度解析教程(十七)C 语言异常处 ...
Linux【实操篇】—— 日志管理 ...
如何使用 FlowUs 、Notion 等笔记软件 ...
姚凯大学生创业导论课后答案2022 ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
主机安全
Java
Oracle
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表