Bash 脚本经典用法及其案例详述(2)

四、信号捕获trap

1、用法格式

trap ' 触发指令' 信号,自定义进程收到系统发出的指定信号后,将执行触发指令,而不会执行原操作

trap '' 信号,忽略信号的操作

trap '-' 信号,恢复原信号的操作

trap -p,列出自定义信号操作

信号可以3种表达方法:信号的数字2、全名SIGINT、缩写INT

2、常用信号:

1) SIGHUP: 无须关闭进程而让其重读配置文件

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

3) SIGQUIT: 相当于ctrl+\

9) SIGKILL: 强制杀死正在运行的进程

15) SIGTERM :终止正在运行的进程(默认为15)

18) SIGCONT :继续运行

19) SIGSTOP :后台休眠

9 信号,强制杀死,捕获不住

3、案例:

① 打印0-9,ctrl+c不能终止

#!/bin/bash
trap 'echo press ctrl+c' 2 for ((i=0;i<10;i++));do sleep 1 echo $i done

分析:i=0,当i<10,每休眠1秒,i+1,捕获2信号,并执行echo press ctrl+c

 

Bash 脚本经典用法及其案例详述

② 打印0-3,ctrl+c不能终止,3之后恢复,能终止

#!/bin/bash
trap '' 2 trap -p for ((i=0;i<3;i++));do sleep 1 echo $i done trap '-' SIGINT for ((i=3;i<10;i++));do sleep 1 echo $i done

分析:i=0,当i<3,每休眠1秒,i+1,捕获2信号;i>3时,解除捕获2信号。

Bash 脚本经典用法及其案例详述

五、脚本小知识(持续更新)

1、生成随机字符 cat /dev/urandom

  生成8个随机大小写字母或数字 cat /dev/urandom |tr -dc [:alnum:] |head -c 8

2、生成随机数 echo $RANDOM

  确定范围 echo $[RANDOM%7] 随机7个数(0-6)

       echo $[$[RANDOM%7]+31] 随机7个数(31-37)

3、echo打印颜色字

echo -e "\033[31malong\033[0m" 显示红色along

echo -e "\033[1;31malong\033[0m" 高亮显示红色along

echo -e "\033[41malong\033[0m" 显示背景色为红色的along

echo -e "\033[31;5malong\033[0m" 显示闪烁的红色along

color=$[$[RANDOM%7]+31]

echo -ne "\033[1;${color};5m*\033[0m" 显示闪烁的随机色along

六、分享几个有意思的小脚本

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/13280.html