shell编程之循环语句(for、while、until循环)

10 篇文章 0 订阅

每日分享:
不要只因一次挫败,就放弃了你原来决心想要达到的目的。



一、echo命令

1、格式:

echo [参数] [字符串]

2、常用参数

常用参数说明
-n表示输出不换行
-E禁止反斜杠转义,与-e参数功能相反
-e输出转义字符,将转义后的内容输出到屏幕上

3、转义符

选项作用
\n输出换行
\r光标移至行首,不换行
\s当前shell的名称,如bash
\t插入Tab键
\f、\v换行,但光标仍停留在原处
\ \表示插入"\"本身
\b表示退格 不显示前一个字符
\c抑制更多的输出或不换行

二、for循环

  • for 给了已知的取值列表,使用for是首选
  • 循环操作一般会首选 for 去写

1、格式

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

在这里插入图片描述

2、例题

例题一、计算从1到100所有整数的和

#!/bin/bash
num=0
for i in `seq 1 1 100`
do
    num=$[ num+i ]
done
echo $num

在这里插入图片描述


例题二、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

#!/bin/bash
read -p "请输入小于100的整数:" num
for ((i=1;i<=$num;i++))
do
  sum=$[$sum + $i]
done
  echo "$sum"

在这里插入图片描述


例题三、求从1到100所有整数的偶数和、奇数和

#!/bin/bash
a=0
b=0
for i in {2..100..2}
do
  a=$[a + i]
  let i++
done
echo "1到100所有整数的偶数和为$a"

for i in {1..100..2}
do
  b=$[b + i]
  let i++
done
echo "1到100所有整数的奇数和为$b"

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


例题四、用户输入密码,脚本判断密码是否正确,正确密码为123456,输入正确提示正确信息,连续输错3次则报警

#!/bin/bash
passwd="123456"
for ((i=3;i>=1;i--))
do 
  read -p "请输入密码:" num
  if [ $num -eq $passwd ]
  then
    echo "密码正确"
    exit
  else
    echo "密码错误"
    if [ $i -eq 1 ]
    then
      echo "密码连续输错三次,已报警"
    fi
  fi
done

在这里插入图片描述


三、while循环

重复测试某个条件,只要条件成立,则反复循环,条件不成立则退出循环

1、格式

while 条件测试操作
do
   命令序列
done

在这里插入图片描述

2、例题

例题一、计算从1到100所有整数的和

#!/bin/bash
m=0
n=0
while [ $n -le 100 ]
do
m=$[m + n]
let n++
done
echo "100以内的和" $m

在这里插入图片描述

例题二、提示用户输入一个小于100的整数,并计算从1到该数之间所有整数的和

#!/bin/bash
m=0
n=0
read -p "输入数值1-100:" num
while [ $n -le $num ]
do
m=$[m+n]
let n++
done
echo "100以内的和为:" $m

在这里插入图片描述


四、until循环

重复测试某个条件,只要条件不成立,则反复循环,条件成立则退出循环

1、格式

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

在这里插入图片描述

2、例题

例题一、计算从1到100所有整数的和

#!/bin/bash
sum=0
i=0
until [ $i -gt 100 ]
do
 sum=$[sum+i]
 let i++
done
echo "{1..100}的和:$sum"

在这里插入图片描述


五、双重循环和跳出循环

break和continue都是用来控制循环结构的,主要是停止循环

1、break

当满足条件的情况下break会跳出当前循环,break跳出单个循环后面加数字2则代表跳出两层循环

#!/bin/bash
for ((i=1;i<5;i++))
do      
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 3 ]			
            then
                break				
            fi  
        echo -e "\t此${j}为内部循环"
        done
done

在这里插入图片描述

2、exit

当满足条件的情况下exit会直接退出当前脚本

#!/bin/bash
for ((i=1;i<5;i++))
do
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 3 ]					
            then
                exit						
            fi
        echo -e "\t此${j}为内部循环"
        done
done

在这里插入图片描述

3、continue

continue会终止某次循环中的命令,但是不会完全终止命令

#!/bin/bash
for ((i=1;i<5;i++))
do
        echo 此${i}为外部循环
        for((j=1;j<4;j++))
        do
            if [ $j -eq 2 ]					
            then
                continue				
            fi
        echo -e "\t此${j}为内部循环"
        done
done

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值