细讲shell中的循环语句--for、while、until

目录

一:何为循环

1.循环概述

2.使用循环的好处

二:for循环语句

1.for语句的用法

​2. 语法结构

(1)一般格式

 (2)类C语言格式

(3)死循环

 3.事例

​4.常用转义符

​5.制作九九乘法表

三:while循环

1.while语句

 2.while语句事例

 四:until循环

1.until语句

2.until语句事例

五:跳出循环

 1.continue跳出循环

2. coontinue 2  

 3.break跳出循环

 4.break 2

 总结:编写脚本的思路


一:何为循环

1.循环概述

循环是一种控制流程的结构,用于重复执行一段代码。

遍历是一种数据操作的过程,用于访间并处理数据结构中的每个元素。

在某些情况下,循环和遍历可以结合使用,以便在循环中遍历数据结构并对其进行操作。

循环(Loop)    是计算机编程中非常重要的一种结构,其主要目的是为了简化代码编写。

提高代码的重复利用率,以及提高程序的效率。

2.使用循环的好处

重复执行代码:通过使用循环,可以在程序中重复执行一段代码,从而避免代码的重复编写, 减少程序代码量,提高程序的可读性和可维护性。

简化程序逻辑:使用循环可以使程序逻辑更加简洁明了,提高程序的可读性和可理解性。降低代码出错的可能性。

 提高代码的重复利用率:通过将重复的代码封装在循环结构中,可以提高代码的重复利用率,减少代码冗余。

提高程序的效率:循环可以让程序自动化地执行重复任务,从而减少人工干预的次数,提高程序的效率和性能。

二:for循环语句

1.for语句的用法

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

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

格式:
for 变量名 in 取值列表
do
命令序列
done

2. 语法结构

(1)一般格式

 (2)类C语言格式

for ((expr1;expr2;expr3))
do
 echo
done

(3)死循环

for ((;;))

 3.事例

(1)批量创建用户,用户名存放在users.txt文件中,每一个初始密码为123456。

 (2)根据ip地址检测主机状态,IP地址存放在ipadds.txt文件中,每行一个,使用ping命令检测各主机的联通性,ping通的ip地址放到/opt/hosts文件中

 4.常用转义符

echo -n 表示不换行输出

echo -e 输出转义字符,将转义后的内容输出到屏幕上

常用的转义字符如下:
\b 转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;"\b"表示删除前一个字符,"\b\b"表示删除前两个字符。

\c 不换行输出,在"\c"后面不存在字符的情况下,作用相当于 echo -n; 但是当"\c"后面仍然存在字符时,"\c"后面的字符将不会被输出。

\n 换行,被输出的字符从"\n"处开始另起一行。

\f 换行,但是换行后的新行的开头位置连接着上一行的行尾;

\v 与\f相同;

\t 转以后表示插入tab,即横向制表符;

\r 光标移至行首,但不换行,相当于使用"\r"以后的字符覆盖"\r"之前同等长度的字符;但是当"\r"后面不存在任何字符时,"\r"前面的字符不会被覆盖

\\ 表示插入"\"本身;

5.制作九九乘法表

 (1)制作长方形图表

 (2)制作等腰三角形图表

(3)制作九九乘法表

脚本解释:for i in {1..9}设置的是循环9次,

j<=i 表示的是在每次$i循环时$j小于等于$i,大于$i的$j不显示出来

j++是一个后缀自增运算符,表示将变量j的值加1,并返回原始值。

 (4)制作倒的九九乘法表

 三:while循环

1.while语句

while循环满足条件执行,不满足不执行

用于不知道循环次数,需要主动结束循环或达到条件结束循环。

while   [ 判断条件]  

do       

执行动作   while循环执行动作

done         while循环结束标志

 2.while语句事例

(1)输出0-5

 

(2)批量添加用户

 (3)猜数字

 (4)计算机

(5)商场购物并打折

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

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

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

if [ $sum -ge 150 ] && [ $sum -lt 200 ];then
    let sum=sum-50
elif [ $sum -ge 200 ] && [ $sum -le 400 ];then
    let sum=$sum-100
fi
echo "打折之后的价格为:$sum"  

 四:until循环

1.until语句

通常用于当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环,比如等待某个进程退出、等待某个文件被创建等等。

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

2.until语句事例

计算0-50的总值

#!/bin/bash
#功能1:0-50的和是多少?
#i=0;s=0
#until [ $i -eq 51 ]
#do
 #   let s+=i
  #  let i++
#done
#echo $s

  

五:跳出循环

 1.continue跳出循环

 表示满足continue条件是跳出循环,但是不影响后续循环执行

它的作用是在循环内部跳过本次循环并继续下一次循环

2. coontinue 2  

continue 2会跳过当前循环和两层外层循环的迭代

 3.break跳出循环

在循环内部,当执行到 break 命令时,会立即跳出当前的循环,停止循环执行,然后继续执行下一条指令。
可以使用 break 命令来提前终止循环,例如当达到特定条件时或者已经执行了足够的次数。

 4.break 2

break 2 会跳出当前循环和外层循环的迭代

 总结:编写脚本的思路

1.首先明确脚本的功能
   1.1案例:需求是创建用户并测试用户20个 
                 ->那肯定要用循环for、 while
                 ->知道需求含义来定义脚本的功能
   
2.编写脚本时会使用到哪些命令?
   2.1如上面的需求:就要使用useradd  passwd  let  echo  for  while 等命令

3.把变化的数据使用变量表示【记得要先定义哦】
   3.1固定长的定义变量、经常调用的参数可设变量
   3.2变化的定义变量

4.选择适合的流程控制
4.1【循环语句、双分支、多分支、case等一些控制语句 】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值