foreach循环符合就不往下走了_【零基础学云计算】Shell编程之case语句与循环语句...

58f57dab4408a2b94cbc33b45aa36213.png

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

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值