架构师的成长之路初片-shell-(while、case、funtion())

一, 循环

while循环,可以根据条件测试决定循环次数,可以实现无限循环

 

语法结构:

while 条件测试    //如果条件测试成功,就执行下面的指令,然后再回

来继续看条件测试能否成功,如果成功就继续执行指令,且可以实现无限

循环,一旦发现条件测试失败了,就立刻终止循环

do

执行指令

done

 

例子:1

#!/bin/bash

x=1

while [ $x -le 5 ]    //通过条件测试还可以决定执行任务的次数

do

    echo abc

    sleep 0.1

    let x++     //x+1

done

例子:2

循环的嵌套

#!/bin/bash

for i in a b

do

    for j in x y

    do

        echo $i

        echo $j

    done

done

---------------------------------------------------------------------------

二,case分支,功能类似if,语句比if精简

语法:

case 调用变量的名称 in   //如果调用的变量内容与下面某个模式一致,就执行模式下面的指令

模式1)    //这里的模式可以有很多

执行指令;;   //指令需要用双分号结尾,如果一个模式有多个指令,那只需在该模式的最后一条指令后加双分号即可

模式2)

执行指令;;

模式N)

执行指令;;

*)     //如果上述模式都没有被匹配,那就匹配这个

    执行指令

esac

 

例子:1

 

 

例子:2

 

 

-------------------------------------------------------------------------------------------------------------- 

工具小点:

netstat 命令可以查询系统启动的端口信息

-n以数字格式显示端口号

-t显示TCP连接的端口

-u显示UDP连接的端口

-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

-p显示监听端口的服务名称是什么(也就是程序名称)

----------------------------------------------------------------------

 

如果想在linux中修改输出文字的颜色,可以使用下列方式

 

echo -e "\033[32mABCD\033[0m"     //-e选项可以激活后面特殊字符的作用,相当于使用echo的扩展功能,\033[32m代表设置颜色为绿色,ABCD是输入内容,\033[0m代表还原颜色。

 

 

---------------------------------------------------------------------------------------------------------------------------------------------------

三,函数(funtion),可以将公共的语句块定义成一个名称,实现精简脚本且方便后期调用的效果还增加了可读性

 

例:

#!/bin/bash

a() {          //定义函数

echo abc

echo xyz

}

a    //调用函数,相当于执行上述两个echo任务

a    //可以反复调用

 

例子:

 

#!/bin/bash

 

a(){     //定义函数

 

echo -e "\033[$1m$2\033[0m"   //输出不同颜色的文本内容,并加入位置变量

 

}

 

 

 

a 31 ABCD   //调用时函数后面可以写位置变量内容,31就是$1  ABCD$2

 

a 32 XYZS

 

a 33 WEFE

 

a 34 WEF1

 

a 35 NBTJ

 

------------------------------------------------------------------------------------

四:循环的控制

exit  可以终止循环,但同时也终止脚本

break 可以终止循环,继续执行循环之后的任务

continue 可以终止当前循环,继续下一次循环

 

例子:

编写脚本,可以为用户进行整数求和,如果用户输入

0则终止脚本 并输出之前整数之和

#!/bin/bash

x=0    //先定义了一个x,表示用户给的整数之和,一个都没给时就是0

while :

do

read -p "请输入一个整数求和(0是结束):"  n

[ -z $n ] && continue   //如果n是空值,就重新循环

[ $n -eq 0 ] && break   //如果n0,就退出循环

let x+=n    //x+n

done

echo "整数之和是$x"

-----------------------------------------------------------------------------------------------------

 

posted @ 2021-02-04 20:10  樱花泪  阅读(128)  评论(0编辑  收藏  举报