shell编程之循环语句

目录

一、循环语句

1.1 for循环语句

1.1-1 for语句的结构

 1.1-2 嵌套循环

1.2 while语句结构

1.3 until语句的结果

 2、Shell函数

2.1 Shell函数的定义

2.2 函数的作用范围

2.3 递归函数

2.4 shell数组

2.4-1 应用场景包括:

2.4-2 数组包括的数据类型

本章总结


一、循环语句

1.1 for循环语句

1.1-1 for语句的结构

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

 例:

 例2:

 例3:

例4:

例5:批量创建用户脚本

我们首先创建一个文件,把需要创建的用户放入文件中

执行脚本后我们看不到任何信息,因为交互的信息放入到黑洞中了,所以我们用“cat /etc/passwd”查看我们所创建的用户

例6:

同样我们给脚本执行权限,并运行脚本

例7:

 1.1-2 嵌套循环

1.2 while语句结构

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

例1: 

 

例2:

有特殊字符的必须加双括号

  例3:

 

 例4:

 

例5:

然后我们在用cat /etc/passwd 命令查看我们所创建的用户

 例6:

 测试我们所写的脚本

例7:监控本机的内存和剩余的磁盘空间

首先打印出可用磁盘空间和内存容量

 

例8:

break:跳出单个循环

break 3:后面的数字则代表跳出三层循环

continue:终止每次循环中的命令,但是不会完成终止命令

 

总结:break是运行到$i=5时终止程序运行,直接跳出去; continue是终止执行的我判断语句,继续执行下面的命令

例9:去商场选购物品

#!/bin/bash
i=1
sum=0

while [ $i -le 5 ]
do
        echo "进入第$i家商店"
        read -p "是否进入看看(yes/no)" doing
        while [ $doing = "yes" ]
         do
          echo "1:衣服 ¥200"
          echo "2:鞋子 ¥180"
          echo "3:帽子 ¥50"
          echo "4:裤子 ¥190"
        read -p "请选择需要购买的商品序列号:" num
        case $num in
        1)
         echo "衣服购买成功"
          expr $[sum+=200] &>/dev/null
        ;;

        2)
         echo "鞋子购买成功"
          expr $[sum+=180] &>/dev/null
        ;;

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

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

1.3 until语句的结果

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

until    #条件测试操作

do

命令序列

done

 

例1:求1-50的和

 2、Shell函数

将命令序列格式写在一起

可方便重复使用命令序列

2.1 Shell函数的定义

方法一:
[function] 函数名(){
    命令序列
[return x]   #使用return或exit可以显示的结束函数
}

方法二:
函数名(){
    命令序列
}

例1:函数的第一种写法

 

 例2:函数的第二种写法

注:shell脚本中是从上往下运行的,如果把函数名放上面则不会运行下面的命令

2.2 函数的作用范围

  1. 函数在shell脚本中仅在当前的shell环境中有效
  2. shell脚本中变量默认全局有效
  3. 将变量限定在函数内部使用local命令

例1:

 

例2:

 

例3:

例4:

 

 

例5:

 

例6:

2.3 递归函数

调用自己本身的函数

例2:

2.4 shell数组

数组是存放相同类型数据的合集,在内存中开辟了连续的空间,通常配合循环使用

数组的分类:

普通数组:不需要声明直接定义,下标索引只能是整数

关联数组:需要用declare -A声明否则系统不识别,索引可以是字符串

2.4-1 应用场景包括:

  • 获取数组长度
  • 获取元素长度
  • 遍历元素
  • 元素切片
  • 元素替换
  • 元素删除

2.4-2 数组包括的数据类型

数值类型

字符类型:使用“”或''定义

 

本章总结

for语句结构

while语句结构

until语句结构

shell函数的定义

数组的使用方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值