shell循环语句

本文详细介绍了Bashshell中的for、while和until循环结构,通过实例展示了如何使用这些循环进行计数、累加、乘法表和批量操作,以及如何结合条件判断如continue、break和exit进行控制。
摘要由CSDN通过智能技术生成

一、for循环:

1.for循环结构:

for 已知循环次数

for  tlj(变量)   循环次数(取值列表)

do
需要循环的事件


done

2.脚本案例:

  2.1 从1累加到100:

#!/bin/bash
i=1
sum=0
for i in {1..100}
do
sum=$(expr $sum + $i)
done
echo $sum

  2.2 累加1到100的偶数:

#!/bin/bash
sum=0
i=0
for i in $(seq 0 2 100)
do
sum=$(expr $i + $sum)
done
echo $sum

 

  2.3 九九乘法表:

#!/bin/bash
for j in {1..9}
do
for i in $(seq $j)
do
echo -e "${i}*${j}=$[$i*$j] \t\c"
done
echo
done

  2.4 批量创建用户:

#!/bin/bash
for i in {1..10}
do
useradd wzw${i}
echo "123123"| passwd --stdin wzw${i}
done

 

 二、while循环:

   1.while循环结构:

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


格式:
while  [ 条件测试操作 ]
do						#do代表循环的开始
	判断式/命令序列
done 					#done代表循环的结束

   2.脚本案例:

     2.1 猜价格:

#!/bin/bash
a=$(echo $[RANDOM%1000+1])
while true
do
read -p "输入猜测的价格:" jg
i=0
if [ $jg -eq $a ]
then
let i++
echo "恭喜你猜对了"
exit
elif [ $jg -gt $a ]
then
echo "猜高了"
else
echo "猜低了"

fi
done

  2.2 给用户发消息:

#!/bin/bash
while true
do
read -p "输入发送人:" aa
read -p "输入发送内容:" cc
id $aa
if [ $? -eq 0 ]
then
bb=$(w | grep -o "$aa")
if [ $aa = $bb ]
then
echo "用户在线,正在发送"
echo "$cc" | write $aa   &>/dev/null
  if [ $? -eq 0 ]
    then
     echo "发送成功"
     exit 0
  else
     echo "发送失败,请重新输入"
   fi
else
echo "用户不在线"
exit 2
fi
else
echo "用户不存在,请重新输入"
fi
done

 三、until循环:

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

格式:
until  [ 条件测试操作 ]
do
	判断式/命令序列
done

四、嵌套循环continue,break,exit:

  4.1 continue:

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

#!/bin/bash
for i in {1..10}
do
  if [ $i -eq 5 ]
  then
  continue
  fi
  echo "i=$i"
done

 4.2 break:

     当满足条件的情况下break会跳出当前循环体

     break后面加数字代表跳出几层

#!/bin/bash
for i in {1..10}
do
if [ $i -eq 5 ]
then break
fi
echo i=$i
done

 

4.3 exit:

    满足条件exit会直接退出当前脚本

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值