Shell编程之case语句与循环语句

Shell编程之case多分支语句 循环语句

for循环语句

while循环语句

untli循环语句

Shell函数 Shell数组 case语句的结构

针对变量的不同取值,分别执行不同的命令序列

case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ...... *) 默认命令序列 esac [root@localhost ~]# vim demo13.sh //编辑示例 #!/bin/bash read -p "请输入一个字符:" a //交互指令 case $a in //编辑case语句 [a-z]|[A-Z]) //模式1 echo "输入的是字母" //输出提示信息 ;; [0-9]) //模式2 echo "输入的是数字" //输出提示信息 ;; *) echo "输入的是特殊符号" esac //结束语句 for语句结构

读取不同的变量值,用来逐个执行同一组命令

for 变量名 in 取值列表 do 命令序列 done

使用场景

指定次数循环 for(int i=0;i<=10;i++)

遍历循环(增强循环 foreach) for(int num:sum)

[root@localhost ~]# vim demo06.sh #!/bin/bash for ((i=1;i<=10;i++)) //循环条件 do echo $i //输出i变量 done [root@localhost ~]# vim aa.txt //创建txt文档 zhangsan wangwu //输入信息 lisi zhaoliu ~ :wq [root@localhost ~]# vim demo07.sh //编辑循环脚本 #!/bin/bash TMP=$(cat /root/aa.txt) //设置变量 for user in $TMP //编写循环 do echo "用户是$user" //输出文档信息 done while语句的结构

重复测试某个条件,只要条件成立则反复执行

while 条件测试操作 do 命令序列 done

[root@localhost ~]# vim demo10.sh #!/bin/bash num=1 //声明变量 while [ $num -le 10 ] //编辑while循环 do echo $num //输出循环结果 let num++; //等同于num=`expr $num+1` done nutil语句结构

重复测试某个条件,只要条件不成立则反复执行

nutil 条件测试操作 do 命令序列 done [root@localhost ~]# vim demo15.sh #!/bin/bash i=0 //设置赋值变量 s=0 until [ $i -eq 51 ];do //编辑until语句 let s+=i;let i++ //计算1-50的求和过程 done echo $s //输出求和数值

Shell函数

将命令序列按格式写在一起 (封装)

可方便重复使用命令序列

Shell函数定义

[function] 函数(){ 命令序列 [return x] //使用return或exit可以显示地结束函数 } [root@localhost ~]# vim demo17.sh #!/bin/bash sum(){ //设置函数名 #命令序列 s=`expr 2 + 2` //编辑函数命令序列 echo $s //输出计算结果 } sum //调用输出函数

调用函数的方法

函数名 [参数1] [参数2]

[root@localhost ~]# vim demo18.sh #!/bin/bash sum(){ s=`expr $1 + $2` //使用位置变量计算 echo $s } sum 2 2 //函数名后添加位置变量 Shell数组 应用场景包括

获取数组长度

获取元素长度

遍历元素

元素切片

元素替换

元素删除

......

数组定义方法

方法一

数组名=(value0 value1 value2 ...)

方法二

数组名=([0]=value [1]=value [2]=value ...)

方法三

列表名="value0 value1 value2 ..."

数组名=($列表名)

方法四

数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

数组包括的数据类型

数值类型

字符类型

使用""或''定义

shell数组操作 获取数组长度

${#数组名[@/*]}

[root@localhost ~]# num=(11 22 33 44 55) //定义数组 [root@localhost ~]# len=${#num[*]} //数组长度赋值给len [root@localhost ~]# echo $len //输出数组长度 5 读取某下标赋值

${数组名[下表]}

[root@localhost ~]# num=(11 22 33 44 55) //定义数组 [root@localhost ~]# a=${num[0]} //赋值数组下表 [root@localhost ~]# echo $a //输出下表 11 [root@localhost ~]# a=${num[1]} [root@localhost ~]# echo $a 22 数组遍历 [root@localhost ~]# num=(11 22 33 44 55) //定义数组 [root@localhost ~]# for i in ${num[*]} //使用for循环遍历数组 > do > echo $i //输出数组 > done 11 22 33 44 55

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

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

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