设为首页 加入收藏

TOP

Bash 脚本进阶,经典用法及其案例(三)
2017-10-13 10:36:41 】 浏览:4368
Tags:Bash 脚本 进阶 经典 用法 及其 案例
1-254,并行ping 192.168.37.1-154,ping通就输出此IP为UP。直到循环结束。

 

四、信号捕获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

 

② 打印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信号。

 

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

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

 

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

1、9x9乘法表
#!/bin/bash
for
a in {1..9};do for b in `seq 1 $a`;do let c=$a*$b ;echo -e "${a}x${b}=$c\t\c" done echo done

 

 

2、彩色等腰三角形

#!/bin/bash
read -p "Please input a num: " num if [[ $num =~ [^0-9] ]];then echo "input error" else for i in `seq 1 $num` ;do xing=$[2*$i-1] for j in `seq 1 $[$num-$i]`;do echo -ne " " done for k in `seq 1 $xing`;do color=$[$[RANDOM%7]+31] echo -ne "\033[1;${color};5m*\033[0m" done echo done fi

 

3、国际象棋棋盘

#!/bin/bash
red="\033[1;41m \033[0m" yellow="\033[1;43m \033[0m" for i in {1..8};do if [ $[i%2] -eq 0 ];then for i in {1..4};do echo -e -n "$red$yellow"; done echo else for i in {1..4};do echo -e -n "$yellow$red"; done echo fi done
 

 

 好了,今天的内容就到这里了,其实小编的脚本功底也是小白级别的,大家一起努力,争取进阶为脚本大神!!!
 
首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇新装ubuntu基本配置 下一篇定时任务 cron命令

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目