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 55Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx