1、trap命令
trap命令不能捕捉9号信号(SIGKILL)和15号信号(SIGTERM);
查看信号列表:
~]# trap -l
~]# kill -l
查看signal详细帮助:
~]# man 7 signal
常可以进行捕捉的信号:HUP,INT
信号捕捉书写格式:trap ‘COMMAND’ SIGNALS
备注:COMMAND外面的单引号是指定格式;COMMAND可以是单个命令,也可以是复杂的命令组成,也可以是函数;
脚本理解:
#!/bin/bash # declare -a host_tmp_files trap 'first_trap' INT ##定义一个信号捕捉,调用函数; first_trap() { ##定义一个函数;函数内置删除所有临时文件的操作; echo "QUIT." rm -rf ${host_tmp_files[@]} exit 11 } for ((i=1;i<=254;i++)); do tmp_file=${mktemp /tmp/ping.XXXXXX} ##每循环一次,都创建一个临时文件; if ping -W 1 -c 1 192.168.206.$i &> /dev/null; then echo "192.168.206.$i is up." | tee $tmp_file ##符合条件的信息都记录到单独的临时文件中; else echo "192.168.206.$i is down." | tee $tmp_file ##符合条件的信息都记录到单独的临时文件中; fi host_tmp_files[${#host_tmp_files[@]}]=$tmp_file ##向数组中追加元素,数组是'host_tmp_files',元素是每个临时文件; done rm -rf ${host_tmp_files[@]} ##按脚本逻辑顺利执行完成后,最后执行删除所有临时文件的操作;
2、脚本着色
在bash中使用ACSII颜色;
\033[31mhello\033[0m
结构说明:
\033[ 起始控制符;
\033[0m 结束控制符;
hello 需要着色的字符串实体;
31m 前景色,着色为红色;
着色的具体结构写法:
##m 格式为前面2个数字,后面跟字母m;
最左侧的数字#,有2个数字,分别代表不同意义:
数字’3′ : 表示对前景着色;
数字’4′ : 表示对背景着色;
右侧的数字#,用1-7,共7个数字标识,表示具体的颜色;
数字’1′ : 红色;
数字’2′ : 绿色;
数字’3′ : 黄色;
数字’4′ : 蓝色;
数字’5′ : 紫色;
数字’6′ : 浅蓝色;
数字’7′ : 白色;
#m 只有一个数字,后面跟字母m,标识字体类型;
数字’1′ : 字体加粗;
数字’4′ : 字符串底部加横线;
数字’5′ : 字体闪烁;
数字’7′ : 白底黑字;
备注,前景色3#m,背景色4#m,字体类型#m,三者可混合使用;
~]# echo -e “\033[31;47;1mhello,world.\033[0m\nhello,world.” 白底红字加粗;
3、dialog命令(后续整理)
窗体控件;
默认,’dialog’命令输出信息被定向到了错误输出流;