0
点赞
收藏
分享

微信扫一扫

shell编程之循环语句与函数

是波波呀 2022-05-02 阅读 98
linux运维

文章目录

引言

今天我们来看看循环语句的应用以及shell函数和数组

一、for语句的结构

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

for循环经常使用在已经知道要进行多少次循环的场景

for 变量名 in 取值列表 >  for 收件人 in 邮件地址列表
do                  > do
 命令序列             >    发送邮件
done                 > done 

在这里插入图片描述

循环出1到6之间的整数

在这里插入图片描述
在这里插入图片描述

查看0…50的偶数

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

批量创建用户并修改密码

在这里插入图片描述
在这里插入图片描述

批量删除用户

在这里插入图片描述

根据IP地址列表检查主机的状态

在这里插入图片描述
在这里插入图片描述

设置密码 输错三次进行警告

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

概率小实验

在这里插入图片描述
在这里插入图片描述

嵌套循环 星星的格式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9*9乘法表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

随机生成密码

在这里插入图片描述
在这里插入图片描述

二、while循环

  • 重复测试某个条件,只要在条件成立则反复执行
while 条件测试操作
do
  命令序列
done

在这里插入图片描述

1.continue和break的区别

  • continue 终止每次循环中的命令,但是不会完全终止命令
  • break 跳出单个循环 ,仅在"for" “while” 或"until"循环中有意义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(1)定义一个变量 猜大小

在这里插入图片描述
在这里插入图片描述

(2)使用while循环创建用户和密码

在这里插入图片描述
在这里插入图片描述

(3)猜数字小实验

在这里插入图片描述
在这里插入图片描述

(4)商店购物

#!/bin/bash
i=1
sum=0
while [ $i -le 5 ]
do
  echo "本公主今天宠爱第$i家商店呢"
  read -p "是否进入看看(yes/no)" doing
  while [ $doing = "yes" ]
    do
       echo "1:衣服 ¥2000"
       echo "2:鞋子 ¥5000"  
       echo "3:帽子 ¥1000"
       echo "4:裤子 ¥3000"
      read -p "请选择需要购买的商品序列号:" num
        case $num in
        1)
          echo "衣服购买成功!"
          expr $[ sum+=2000 ] &> /dev/null
        ;;
        2)
          echo "鞋子购买成功!"
          expr $[ sum+=5000 ] &> /dev/null
        ;;

        3)
          echo "帽子购买成功!"
          expr $[ sum+=1000 ] &> /dev/null
        ;;

        *)
          echo "裤子购买成功!"
          expr $[ sum+=2000 ] &> /dev/null
        ;;
        esac
           read -p "是否继续进行购买(yes/no)" doing
     done
let i++
        if [ $doing = "no" ]
           then break
        fi
done
echo "今天您的购物总价为:$sum"

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三. until 循环语句结构

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

只要while后面的命令退出状态为0,while循环就一直执行下去,until命令与while命令相似,唯一的区别在于,只要until后面的命令退出不为0,until循环就一直执行下去,也就是说,使用until语句重复执行一段代码直到条件为真为止,与while类似

格式:
until 条件测试操作
do
 命令序列
done

1.计算0-50的和

[root@zhang until]# vim 50.sh

#!/bin/bash
i=1                             //定义变量i=1
sum=0                   
until [ $i -eq 51 ]             //$i等于51时停止执行
do      
        sum+1=i          //sum=sum+i
        let i++                 //每次循环i+1   
done
echo "$sum"                       //打印结果 $sum

在这里插入图片描述
在这里插入图片描述

四、Shell函数

  • 将命令序列按格式写在一起
  • 可方便重复使用命令序列

1.函数基本格式

[function] 函数名(){
  命令序列
[return x]                           #使用return或exit可以显示的结束函数 
}
或者                                  #也可以省略掉[function],它表示该函数的功能
 
函数名() {                            #函数名后面()是没有内容的
  命令序列                            #我们执行的命令内容放在{}里面
}
  • 函数定义完之后并不会自动执行,需要调用才行
  • 好处在于可以写一段功能代码作为函数,有需要就直接调用定义的时候哪怕出现语法错误也没关系,不调用就不会报错
  • 当然我们写函数最终目的还是为了调用,为了实现某个功能块。

2.函数返回值

return表示退出函数并返回一个退出值,脚本中可以用$? 变量显示该值使用原则

  • 函数一结束就取返回值,因为$?变量只返回执行的最后一条命令的退出状态码
  • 退出状态码必须是0~255,超出时值将为256取余

3.函数应用示例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一键部署yum库

在这里插入图片描述
在这里插入图片描述

举报

相关推荐

0 条评论