shell脚本中捕获键盘中断信号trap

在 Shell 脚本中,可以通过 trap 命令捕获键盘中断信号(通常是 SIGINT,即 Ctrl+C)。以下是具体的实现方法:

1.使用 trap 捕获键盘中断信号

trap 命令用于捕获信号并执行相应的命令或函数。SIGINT(信号编号为 2)是键盘中断信号。

2.示例脚本

以下是一个捕获键盘中断信号的示例脚本:

bash 复制代码
#!/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,然后运行:

bash 复制代码
chmod +x script.sh
./script.sh

运行后,按下 Ctrl+C,脚本会捕获键盘中断信号并执行清理操作。

5.恢复默认行为

如果需要在捕获信号后恢复默认行为(例如直接退出脚本),可以在 trap 中重新设置信号处理为默认行为:

bash 复制代码
trap SIGINT  # 恢复默认行为
相关推荐
新点一讯2 天前
玩CS2推荐一个高配置电竞显示器?蚂蚁电竞ANT257PF硬核解析
计算机外设
AUV11072 天前
Mac 录屏自动缩放怎么设置才不乱跳:自动片段、固定区域与鼠标跟随调试
macos·计算机外设
coding4u3 天前
Mac 外接显示器完全指南:从插上线到调好每个参数
macos·计算机外设·文件管理·显示器·策略模式·quick look扩展
秋枫要学习5 天前
你的鼠标,正在被 AI 抢走
人工智能·计算机外设
你怎么知道我是队长5 天前
计算机中的文件管理介绍
计算机外设
科技每日热闻7 天前
飞利浦5K双模商用显示器34B2U5900C——全能宽屏双模,多场景适配!
科技·计算机外设·显示器
羽翼安全7 天前
如何防止电脑显示器被手机拍照泄密?6款防拍屏软件测评
智能手机·计算机外设·电脑
单片机杂货铺8 天前
基于单片机的智能粮仓控制系统设计与实现
stm32·单片机·嵌入式硬件·物联网·计算机外设·51单片机·课程设计
上海广测检测科技有限公司10 天前
蓝牙鼠标键盘台湾NCC认证详解:射频器材型式核准制度与技术标准解读
计算机外设
Fozei10 天前
录屏原理与鼠标可视化
计算机外设·策略模式