一、信号捕捉 trap
trap 命令可以捕捉信号,修改信号原来的功能,实现自定义功能
#列出所有信号 trap -l #进程收到系统发出的指定信号后,将执行自定义指令,而不会执行原操作 trap '触发指令' 信号 #忽略信号的操作 trap '' 信号 #恢复原信号的操作 trap '-' 信号 #列出自定义信号操作 trap -p #当脚本退出时,执行finish函数 trap finish EXIT 二、创建临时文件 mktemp
三、安装复制文件 install
install 功能相当于cp,chmod,chown,chgrp ,mkdir 等相关工具的集合
install命令格式:
四、交互式转化批处理工具 expect
expect 是由Don Libes基于 Tcl( Tool Command Language )语言开发的,主要应用于自动化交互式 操作的场景,借助 expect 处理交互的命令,可以将交互过程如:ssh登录,ftp登录等写在一个脚本上, 使之自动化完成。尤其适用于需要对多台服务器执行相同操作的环境中,可以大大提高系统管理人员的 工作效率
五、数组
1、数组介绍
变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引 索引的编号从0开始,属于数值索引 索引可支持使用自定义的格式,而不仅是数值格式,即为关联索引,bash 4.0版本之后开始支持 bash的数组支持稀疏格式(索引不连续)2、声明数组
#普通数组可以不事先声明,直接使用 declare -a ARRAY_NAME #关联数组必须先声明,再使用 declare -A ARRAY_NAME3、数组赋值
4、显示所有数组
显示所有数组: declare -a
5、引用数组
6、删除数组
7、数组数据处理
数组切片:
8、关联数组
declare -A ARRAY_NAME ARRAY_NAME=([idx_name1]='val1' [idx_name2]='val2‘...) 六、字符串切片 1、基于偏移量取字符串
2、基于模式取子串
#其中word可以是指定的任意字符,功能:自右而左,查找var变量所存储的字符串中,第一次出现的word,
删除字符串最后一个字符向左至第一次出现word字符串(含)之间的所有字符,即懒惰模式,以从右向左的第一 个word为界删右留左 ${var%word*} ${var%word} #同上,只不过删除字符串最右侧的字符向左至最后一次出现word字符之间的所有字符,即贪婪模式,以从右向 左的最后一个word为界删右留左 ${var%%word*} ${var%%word}六、查找替换
#查找var所表示的字符串中,第一次被pattern所匹配到的字符串,以substr替换之,懒惰模式 ${var/pattern/substr} #查找var所表示的字符串中,所有能被pattern所匹配到的字符串,以substr替换之,贪婪模式 ${var//pattern/substr} #查找var所表示的字符串中,行首被pattern所匹配到的字符串,以substr替换之 ${var/#pattern/substr} #查找var所表示的字符串中,行尾被pattern所匹配到的字符串,以substr替换之 ${var/%pattern/substr}七、查找并删除
#删除var表示的字符串中第一次被pattern匹配到的字符串,懒惰模式 ${var/pattern} #删除var表示的字符串中所有被pattern匹配到的字符串,贪婪模式 ${var//pattern} #删除var表示的字符串中所有以pattern为行首匹配到的字符串 ${var/#pattern} #删除var所表示的字符串中所有以pattern为行尾所匹配到的字符串 ${var/%pattern} 八、字符大小写转换 #把var中的所有小写字母转换为大写 ${var^^} #把var中的所有大写字母转换为小写 ${var,,} 九、变量扩展 #扩展以所有prefix开头的变量 ${!prefix*} ${!prefix@} 十、高级变量 1、赋值2、高级变量用法-有类型变量
Shell变量一般是无类型的,但是bash Shell提供了declare和typeset两个命令用于指定变量的类型,两 个命令是等价的3、变量间接引用
eval命令 eval命令将会首先扫描命令行进行所有的置换,然后再执行该命令。该命令适用于那些一次扫描无法实 现其功能的变量,该命令对变量进行两次扫描 间接变量引用 如果第一个变量的值是第二个变量的名字,从第一个变量引用第二个变量的值就称为间接变量引用 variable1的值是variable2,而variable2又是变量名,variable2的值为value,间接变量引用是指通过 variable1获得变量值value的行为 variable1=variable2 variable2=value #示例: i=1 $1=wang 标签:SHELL,第十二天,变量,pattern,编程,字符串,数组,var,word From: https://www.cnblogs.com/dujy/p/17985818