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