shell脚本入门详解及其实例(4)

 

1 #!/bin/bash 2 #设置信号捕获 3 trap '' 2 4 trap -p 5 for ((i=0;i<3;i++));do 6 sleep 1 7 echo $i 8 done 9 trap '-' SIGINT 10 for ((i=3;i<10;i++));do 11 sleep 1 12 echo $i 13 done

 

shell脚本入门详解及其实例


2.5.4 创建无限循环

在我们的shell脚本中,可以创建一个死循环,具体设置如下:

while true;do

    循环体

  done

2.5.5 在循环语句中执行并行命令

当我们需要在脚本里执行一条命令很多次的时候,我们可以将其设置为并行执行,这样可以极大的提升脚本运行速度,但是也有缺点,并行执行的话,相当于开了很多子shell一起执行,运行速度上来了,但是对资源的消耗也增多了

具体的用法示例如下:

for name in 列表; do

    {

        循环体

}$

  done

  wait

Example:

1)搜寻自己指定的的IP(子网掩码为24的)的网段中,up的ip地址

 

1 #!/bin/bash 2 #定义变量 3 read -p "Please input network (eg:172.17.0.1): " net echo $net |egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>" 4 #判断网段是否符合规范 5 [ $? -eq 0 ] || ( echo "input error";exit 10 ) 6 #判断网段内哪些IP能ping通,并行执行 7 IP=`echo $net |egrep -o "^([0-9]{1,3}\.){3}"` 8 for i in {1..254};do 9 { 10 ping -c 1 -w 1 $IP$i &> /dev/null && \ 11 echo "$IP$i is up" 12 }& 13 done 14 wait 15 16 #删除变量 17 unset net IP i

shell脚本入门详解及其实例

 

三、小补充

介绍了这么多语法,我们来玩一些好玩的吧~下面是小编给大家分享的几个有意思的脚本

1)打印等腰三角形(带闪烁)

 

1 #!/bin/bash 2 #num=总行号 i=第几行 j=*个数 k=空格个数 3 read -p "请输入一个数字:" num 4 for i in `seq 1 $num`;do 5 for k in `seq 1 $[$num-$i]`; do 6 echo -n " " 7 done 8 for j in `seq 1 $[2*$i-1]`;do 9 if [ $j -eq 1 ] || [ $j -eq $[2*$i-1] ] || [ $i -eq $num ];then 10 color=$[RANDOM%5+31] 11 echo -en "\033[1;$color;5m*\033[0m" 12 else 13 echo -n "*" 14 fi 15 done 16 echo 17 done 18 19 #删除变量 20 unset num i j k color

具体的效果大家可以自己去尝试,就是下面两张图配合出来的效果:

shell脚本入门详解及其实例

shell脚本入门详解及其实例


2)打印国际象棋棋盘

 

1 #!/bin/bash 2 #定义变量 3 color_1="\033[1;44m \033[0m" 4 color_2="\033[1;45m \033[0m" 5 for (( i=1;$i <=8;i++ ));do 6 for (( j=1;$j <=8;j++ ));do 7 if [ $[$i%2] == 1 ] && [ $[$j%2] == 1 ];then 8 echo -en "$color_1$color_2" 9 elif [ $[$i%2] == 0 ] && [ $[$j%2] == 0 ];then 10 echo -en "$color_2$color_1" 11 fi 12 done 13 echo 14 done 15 16 #删除变量 17 unset color_1 color_2 i j

shell脚本入门详解及其实例

具体的颜色大家可以根据自己的喜好来调整~

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

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