linux中的shell脚本case,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

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值