shell编程中的循环语句

一、for循环

 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done 之间),直到所有元素取尽为止。其中,串行是一些字符串的组合,彼此用$IFS所定义的分隔符(如空格符)隔开,这些字符串称为字段。

格式:

 1 for 变量名 in 取值列表
 2 do
 3   命令序列
 4 done
 5  
 6 或者
 7 for ((变量初始值; 变量范围; 迭代方法))
 8 do
 9   命令序列
10 done

案例:批量创建用户

 2 [root@localhost ~]# vim name.txt
 3 创建用户名字的文件
 4 [root@localhost ~]# vim user.sh
 5 编辑脚本
 6 #!/bin/bash
 7 for i in `cat name.txt`
 8 do
 9 useradd $i
10 done
11  
12 [root@localhost ~]# bash user.sh

 

 

 

 

创建成功

 

 

二、while循环

while语句的用法

  • 重复测试某个条件,只要条件成立则反复执行
  • 常在不知道范围的时候成立

格式:

while  条件判断
 
do
 
循环体
 
done

案例:猜数游戏

 1 [root@localhost ~]# vim cai.sh
 2  
 3 #!/bin/bash
 4 pc=$[RANDOM%10+1]
 5  
 6 ci=0
 7 while true
 8 do
 9 read -p "请猜一个数字:" shu
10 if [ $shu -eq $pc ];
11 then
12 echo "你猜对了"
13 break
14 elif [ $shu -gt $pc ];
15 then
16 echo "你的数大了"
17 else
18 echo "你的数小了"
19 fi
20 let ci++
21 done
22 echo "你输入的次数为:" $ci
23  
24 [root@localhost ~]# bash cai.sh
25 请猜一个数字:1
26 你的数小了
27 请猜一个数字:0
28 你的数小了
29 请猜一个数字:9
30 你的数大了
31 请猜一个数字:7
32 你的数大了
33 请猜一个数字:5
34 你的数大了
35 请猜一个数字:4
36 你猜对了
37 你输入的次数为: 5

 

2.1while 读取文件内容

格式:

 1 while read 变量名
 2 do 
 3   
 4 done < 文件名
 5  
 6 或者
 7 cat 文件名 | while read 变量名
 8 do
 9  
10 done

 

三、until循环

格式:

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

 

案例:计算1-50的和

 1 [root@localhost demo]# vim 2.sh
 2  
 3 #!/bin/bash
 4 a=0
 5 sum=0
 6 until [ $a -gt 50 ]
 7 do
 8   sum=$[ sum + a ]
 9   let a++
10 done
11 echo "1-50的和为$sum"
12 [root@localhost demo]# bash 2.sh
13 1-50的和为1275

 

posted @ 2022-10-31 15:49  赵哈哈#  阅读(92)  评论(0编辑  收藏  举报