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 //结束语句
读取不一样的变量值,用来逐个执行同一组命令shell
for 变量名 in 取值列表 do 命令序列 done
[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
重复测试某个条件,只要条件成立则反复执行vim
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 条件测试操做 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 //输出求和数值
将命令序列按格式写在一块儿 (封装)bash
可方便重复使用命令序列ide
Shell函数定义函数
[function] 函数(){ 命令序列 [return x] //使用return或exit能够显示地结束函数 }
[root@localhost ~]# vim demo17.sh #!/bin/bash sum(){ //设置函数名 #命令序列 s=`expr 2 + 2` //编辑函数命令序列 echo $s //输出计算结果 } sum //调用输出函数
调用函数的方法测试
[root@localhost ~]# vim demo18.sh #!/bin/bash sum(){ s=`expr $1 + $2` //使用位置变量计算 echo $s } sum 2 2 //函数名后添加位置变量
方法一code
数组名=(value0 value1 value2 ...)文档
方法二it
数组名=([0]=value [1]=value [2]=value ...)
方法三
列表名="value0 value1 value2 ..."
数组名=($列表名)
方法四
数组名[0]="value"
数组名[1]="value"
数组名[2]="value"
数值类型
字符类型
使用""或''定义
[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