shell 脚本编程学习(七) 信号和数组
来源:互联网 发布:java还能火几年 编辑:程序博客网 时间:2024/06/18 11:04
信号处理
在 linux 中信号用来通知进程发生的异步事件,例如我们按下 ctrl + c 键将向当前进程发送 SIGINT 即程序终止(interrupt)信号,顾名思义这个信号的默认处理方式是终止程序,但有时我们想在终止前做一些自定义的处理比如记录日志,删除临时文件等,在 shell 脚本中我们可以用 trap 命令来捕获和处理信号。
#!/bin/bash# 处理终止信号例子# 自定以的终止信号处理函数onInt () { # 在终止前打印信号接收时间和信号名 echo "$(date) SIGINT"}# 用 trap 命令捕获 SIGINT 即 2 信号,指定 onInt 为处理函数trap onInt 2# cat 命令等待用户输入,这样我们才有机会按 ctrl + c 发送信号cat
trap 后面可以跟多个信号,从而为多个信号指定同一个处理函数。如果要为不同的信号指定不同的处理函数,多用几次 trap 命令即可。
数组
数组是很实用的一种数据结构,shell 脚本也支持数组,使用方法如下:
#!/bin/bash# shell 数组用法# 指定数组某一项的值array1[0]=1# 声明数组的多个值,他们的键将从 0 开始递增array2=(1 2 3 4)# 通过键值对的方式同时设置数组的多个键值array3=([0]=1 [3]=2 [7]=3 [10]=4)# 取数组的值,使用 ${} 花括号的形式解引用${array1[0]}# 也可以用一些特殊符号来获得数组数据${array2[@]} # 获得数组的所有内容${#array2[@]} # 获得数组的长度# 截取数组${array2[@]:3} # 下标 3 以及它之后的元素组成的子数组${array2[@]:3:2} # 从下标 3 开始取 2 个元素组成的子数组# 从数组中删除元素unset array2[1] # 删除数组下标为 1 的元素unset array2[@] # 删除数组中的所有元素
阅读全文
1 0
- shell 脚本编程学习(七) 信号和数组
- Linux Bash Shell学习(七):shell编程基础——运行Shell脚本、function
- shell 脚本学习七
- 【Shell】【学习笔记】Linux Shell脚本应用(七)
- Shell脚本学习笔记(七)--sed和awk
- Shell脚本学习笔记(七)--sed和awk
- 高级shell脚本编程之函数库、信号与陷进、文件处理、数组、安全性
- shell编程(七)
- linux学习(七) shell脚本(4)
- 详细介绍Linux shell脚本基础学习(七)
- Shell脚本基础学习(七)----for while until循环
- shell脚本编程学习笔记(1)
- Linux学习(八):shell脚本编程
- shell 脚本编程学习(一) 基础
- shell 脚本编程学习(四) 实例
- shell 脚本编程学习(六) 函数
- shell find和xargs学习(七)
- Shell脚本编程学习笔记
- JVM锁
- 第三周 项目3 求集合并集
- SpringMVC 406
- 开源grafana可视化监控+influxdb
- [iOS开发笔记] webview加载+JS交互
- shell 脚本编程学习(七) 信号和数组
- 支付宝开发平台之第三方授权登录与获取用户信息
- 第14周【项目2
- PowerDesigner逆向工程导入MYSQL数据库总结
- caffe在linux下绘制训练时的loss曲线
- 第14周项目2- 大数据集上排序算法性能的体验
- 将用户密码变为md5值保存在数据库
- Redis的简单介绍及安装
- SQLiteSpy打开db文件