ksh trap signal

风光储互补微电网在偏远地区的应用实践:从建模到仿真全解析 本文深入解析了风光储互补微电网在偏远地区的应用实践,从系统设计到仿真建模全流程。通过Simulink等工具进行动态仿真,验证了系统在多种工况下的可靠性,并结合实际案例展示了其显著的经济和环保效益。文章为从业者提供了从技术路径到实施优化的全面指导。 阅读详情


What's Signal


When a signal is received, a script can do one of three actions:

  1. Ignore it and do nothing.
  2. Catch the signal using trap and take appropriate action.
  3. Take the default action.

All the above is true except for the following signals:

SIGKILL (signal 9)

SIGSTOP (signal 17)

SIGCONT (signal 19)

These cannot be caught and always uses the default action.



Signal Syntax

trap [ command ] signal [ signal ... ]

  • Command can be explicit commands or a function
    • Command
      trap 'echo signal received, now exiting..; exit' 2 6
      
    • function
      function mysignal {
          echo "in mysignal function"
          exit
      }
      trap 'mysignal' 2 6
      
  • Signal can be a signal number or signal name

  Signals numbers from 0 to 31, "0" being a pseudo-signal meaning "program termination", or using name, HUP for HANGUP signal, TERM for the SIGTERM signal etc.

trap 'echo signal received, now exiting..; exit' 2 6
trap 'echo signal received, now exiting..; exit' SIGINT SIGQUIT


What will script do when a signal(for example 15) is received:

  1. The script would trap the signal 15, and execute the command "rm -f $Tmp", thus removing the temporary file.
  2. it would continue with the next script command. This could cause strange results, because the (probably needed) temporary file $Tmp is gone. Another point is that somebody explicitly tried to terminate the script, a fact it deliberately ignores.

How to ignore and reset default signal handler


To ignore a signal, use two single quotes in place of the command:

trap ''  signals

To reset a trap use:

trap -  signals


KSH Signal Code Samples


 1  #!/bin/ksh
 2
 3  function mysignal {
 4          echo "in mysignal"
 5          #exit
 6  }
 7
 8  trap "mysignal" SIGINT SIGQUIT
 9
10  function mainfun {
11          sleep 10
12  }
13
14  mainfun
15
16  echo "End of script"


When script is running, and CTRL-2 is pressed, function mysignal will be called, and after function is finished, control-flow come to the statement immediately after 'mainfun', so the final "End of script" is executed.

So if line 5 (#exit) is not commented out, line 16 will not be executed, because script will exit at line 5.


CAPL学习之路-关键字 在capl中,关键字具有特殊的含义和用途,因此,不得将关键字用作变量或函数的名称 声明数据类型的关键字 可以用不同的关键字,声明或引用不同类型的数据 byte 声明一个字节的变量 word 声明两个字节的变量 dword 声明四个字节的变量 int 声明两个字节的整数 long 声明四个字节的变量 qword 声明八个字节的变量 char 声明一个字符串 float 声明一个浮点数,8个字节 double 声明一个浮点数,8个字节 定义一个结构体或枚举类型 struct struct Data { . 阅读详情

相关推荐

Look4sat蓝牙追星云台

//这是一个追星云台的小程序 //配合Look4sat蓝牙传输数据(W*** A***),并让电机做出动作 //app设置内填好ESP32的蓝牙MAC,数据格式:W$AZ A$EL //希望大家可以共同改进

HoyAnGx的博客 618

Shell 脚本调试技巧详解

Shell 脚本调试技巧详解 author:润明 2012-2-2  QQ:226399587  http://blog.youkuaiyun.com/runming918 本文将系统地介绍一些重要的shell脚本调试技术,希望能对shell的初学者有所裨益。   一. 在shell脚本中输出调试信息   Shell程序员通常使用echo(ksh程序员常使用print)语句输出信息,但仅仅依赖e

润明--oracle--unix-IT技术专栏 1613

SCDM学习笔记(5)

几何前处理后一般会获得几何的固体区域,然而当进行流体仿真的时候是对流体的区域进行计算的。因此,如何快速地从固体的几何模型获得流体的几何模型是一个重点问题。 流体问题一般可分为内流场与外流场问题,对于内流场问题,SCDM有专门的处理工具 工程图纸大致如下: 要创建这个几何的大致策略是画出截面的圆形,再画出轴线,通过扫掠的方式建立几何。 以上是mixing的国体区域,通过体积抽...

diyhoo的编程小屋 6358

ksh(一)

<br />1.语法<br />特殊的文件<br />/etc/profile  在登录时首先自动执行。<br />$HOME/.profile  在登录时第二个自动执行。<br />$ENV  在创建一个新的KShell时指定要读的一个文件。<br />文件名元字符<br />*  匹配有零或零个以上字符的字符串<br />?  匹配任何单个字符<br />[abc…]  匹配括号内任何一个字符,也可用连字符指定一个范围(例如,a-z,A-Z,0-9)<br />[!abc…]  匹配任何不包括在括号内的

MissYourKiss的专栏 1411

半导体行业周期分析:库存、需求与复苏路径深度解读

半导体行业作为现代科技产业的基石,其周期性波动受供需关系、库存水平和宏观经济等多重因素影响。从技术原理上看,行业景气度通常通过库存周转天数、晶圆厂产能利用率等核心指标进行监测,这些指标反映了产业链各环节的健康状况。在工程实践中,理解这些指标有助于企业进行库存管理和产能规划,从而提升运营效率。当前,半导体市场正经历结构性分化,其中**库存周转天数**和**晶圆厂产能利用率**成为判断市场拐点的关键。在应用场景上,汽车电子、人工智能等领域需求相对稳健,而消费电子则面临较大压力。本文聚焦于半导体行业的周期特征,探

weixin_29549793的博客 689

LTspice进阶技巧-031.一键加密仿真模型:LTspice Encrypt Tool实战指南

本文详细介绍了LTspice Encrypt Tool的使用方法,帮助工程师一键加密LTspice仿真模型,保护知识产权。通过图形化界面简化操作流程,支持批量加密和兼容性处理,适用于电路设计中的模型保护需求。

weixin_28304023的博客 202

GDB调试--多线程

一. GDB与多线程 在多线程编程时,当我们需要调试时,有时需要控制某些线程停在断点,有些线程继续执行。有时需要控制线程的运行顺序。有时需要中断某个线程,切换到其他线程。这些都可以通过gdb实现。GDB默认支持调试多线程,跟主线程,子线程block在create+thread。 先来看一下gdb调试多线程常用命令: info+threads:显示可以调试的所有线程。gdb会为每个线程分配

Just do it 2357

从《新程序员》系列看程序员职业发展趋势与成长路径

在信息技术日新月异的当下,软件开发行业蓬勃发展,程序员作为行业的核心力量,其成长与发展路径备受瞩目。《新程序员》系列杂志应运而生,以其前瞻性的视角、丰富多元的内容,为广大程序员尤其是新程序员提供了洞察行业趋势、学习前沿技术、汲取前辈经验的宝贵窗口。该系列杂志由优快云精心打造,自推出以来,便在开发者群体中引发了强烈反响。《新程序员》系列内容涵盖了从基础技术知识的深入解读,到行业前沿趋势的精准预测;从优秀开发者的成长历程分享,到各大企业数字化转型的实践案例剖析等多个维度。

AllenLV的博客 2259

linux unit 7

####################### ########unit.7########### ####################### 1.什么是进程 进程就是系统正在做的事 2.进程的状态 运行 休眠 停止 继续 结束 僵尸进程 3.图形中如何查看进程 gnome-system-monitor 4.如何用命令查看进程

ayyzz的博客 562

VINS-Fusion实战:从零搭建无人机视觉SLAM系统(附ROS配置全流程)

本文详细介绍了如何从零开始为无人机搭建基于VINS-Fusion的视觉SLAM系统。内容涵盖硬件选型(重点推荐双目相机与IMU搭配)、ROS环境配置、传感器标定、核心参数调优以及实际飞行测试与问题排解全流程,旨在帮助开发者实现稳定、精确的无人机自主定位与导航。

wasm7browser的博客 214

Pwntools不只是PWN:用它写个自动化Fuzz脚本,挖掘Linux命令行工具漏洞

本文探讨了如何利用Pwntools构建自动化Fuzz脚本,挖掘Linux命令行工具中的漏洞。通过详细的代码示例和实战案例,展示了Pwntools在Fuzzing中的高效性和灵活性,特别适合快速验证特定场景的安全问题。文章还提供了进阶技巧和避坑指南,帮助安全研究人员快速上手并提升测试效率。

weixin_28718345的博客 221

Linux signal 那些事儿(4)信号的deliver顺序【转】

转自:http://blog.chinaunix.net/uid-24774106-id-4084864.html 上一篇博文提到了,如果同时有多个不同的信号处于挂起状态,kernel如何选择deliver那个信号。 next_signal 负责从挂起信号中选择deliver的signo:当然,有线程显存私有的penging,有线程组共有...

weixin_33860147的博客 259

FastAPI 高级特性:同异步路由函数、依赖注入与后台任务

在现代 Web 开发中,高效的性能和简洁的代码结构是至关重要的。FastAPI 作为一个现代、快速(高性能)的 Web 框架,凭借其对异步编程的原生支持和直观的依赖注入系统,迅速成为开发者的热门选择。在本文中,将深入探讨 `FastAPI` 中的几个核心概念:同异步函数的区别、`Depends` 依赖以及后台任务。

qq_43629857的博客 203

trap和signal

在Linux上进行shell脚本开发,不可避免的需要和进程信号(signal)打交道,如杀掉(kill)、终止(terminate)、进程退出时(正常退出或异常退出)做一些操作等。 以下几点是在开发中常会碰到的情形。 1. 不论当前进程如何退出(执行完操作正常退出、被kill掉等),都希望进行一些操作(常常是做一些清理,清理掉该进程生成的一些中间数据)。可在脚本中添加以下代码 t...

hongboyongqi的专栏 454

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

find_large shell

#!/bin/ksh function usage { echo "\n***************************************" echo "\n\nUSAGE: findlarge.ksh [Number_Of_Meg_Bytes]" echo "\nEXAMPLE: filelarge.ksh 5" echo "\n\nWill Find Files La

Zhong Weicheng Study Notes 882

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Linux | Bash Shebang 语法与结构及常见问题排查

……

u013669912的博客 1161

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Shell wait命令详解:并发控制、退出码捕获与跨Shell兼容性

wait是Linux Shell中实现进程同步与并发控制的核心系统调用封装,其本质是阻塞式等待子进程终止并获取退出状态,区别于sleep的时间延迟机制。它依托waitpid()内核接口,零CPU轮询、事件驱动,支撑精准的作业编排与错误传播。技术价值体现在资源安全释放、结果依赖保障及故障快速熔断,广泛应用于自动化部署、日志批量处理、CI/CD单机多阶段构建等工程场景。本文深入解析wait与&的共生关系、三种调用形态(无参/指定PID/wait -n)、$!与$?的时效性协同,并覆盖dash/ash/bash兼

weixin_34198762的博客 363

Shell脚本调试技术

  级别: 初级 曹 羽中 (mailto:caoyuz@cn.ibm.com?subject=Shell脚本调试技术), 软件工程师, IBM中国开发中心 2007 年 7 月 26 日 本文全面系统地介绍

731

trap命令使用详解

<br />它有三种形式分别对应三种不同的信号回应方式.<br />第一种:<br /> trap ""commands"" signal-list<br />当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令.<br />第二种:<br /> trap signal-list <br />trap不指定任何命令,接受信号的默认操作.默认操作是结束进程的运行.<br />第三种:<br /> trap "" "" signal-list<br />trap命令指定一个空命令串

liuchao1986105的专栏 6751

Erang trap_exit的简单说明

When trap_exit is set to true, exit signals arriving to a process are converted to {'EXIT', From, Reason} messages, which can be received as ordinary messages. If trap_exit is set to false, the process exits if it receives an exit signal other than normal

Mayday 905

调试中出现Program received signal SIGSEGV,Segmentation fault原因及解决办法(针对比较简单的问题)

详细解释 更详细的解释及解决 解决方法:好好看你的数组,指针对没有。 主要就是由于访问到了系统没分配的地方出的错,未初始化或越界。 我就是错在之前定义了个全局变量a[max];然后又在主函数下面用了a[]={0}; 改成a[max]={0};就是这个错误 之后就对了。 ...

m0_50007959的博客 1万+

c++调试在容器释放内存时报Unknown Signal 或 Trace/breakpoint trap异常

在做一道题时,用到的板子中出现了很多的容器的使用,,一开始都是开MAXN大小的容器,,但是有几率出现程序运行完后不正常退出,, 在多次尝试断点调试后,发现主要的异常是程序在结束时,要进行资源的释放,,但是可能空间开的MAXN和使用的不匹配,就会出现未知错误,,或者是 Trace/breakpoint trap 异常,,把申请时的 vector<edge> g[MAXN] 改为...

weixin_30386713的博客 7786
上一篇: ksh array variable
下一篇: Oracle/DB2 null key index
假装80后
博客等级 码龄19年 28粉丝 249原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值