shell中的for循环语句


for循环语句结构

使用for循环语句时,需要指定一个变量以及可能的取值列表,根据不同的取值,执行相同的命令序列知道变量的值取完退出循环,取值列表称为for语句的执行条件

语法1

for 变量 in 值1 值2 值3…
do
命令
done

在这种语法中,for 循环的次数取决于 in 后面值的个数(以空格分隔),有几个值就循环几次,并且每次循环都把值赋予变量。也就是说,假设 in 后面有三个值,for 会循环三次,第一次循环会把值 1 赋予变量,第二次循环会把值 2 赋予变量,以此类推。

流程图

image

实例1

[root@yaoguang shell]# vim /root/shell/num   #新建一个取值列表
1
2
3
4
5
6

[root@yaoguang shell]# vim for.sh            #编辑shell脚本
#!/bin/bash

NUM=$(cat /root/shell/num)
for i in $NUM
do
        echo $i
done

[root@yaoguang shell]# sh for.sh             #执行脚本
1
2
3
4
5
6

实例2

要求:
1.根据姓名列表批量创建用户;
2.用户的初始密码是“123456”
实施步骤:

#创建取值列表
[root@yaoguang shell]# vim username
zhangsan 
lisi 
wangwu
zhaoliu
#创建批量创建用户的脚本
[root@yaoguang shell]# vim for01.sh
#!/bin/bash
#for语句实例2

USER=$(cat /root/shell/username)
for i in $USER
do
	useradd $i
	echo "123456" | passwd --stdin $i &> /dev/null
done
#运行脚本
[root@yaoguang shell]# sh for01.sh 
#验证效果
[root@yaoguang shell]# tail -4 /etc/passwd
zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
lisi:x:1001:1001::/home/lisi:/bin/bash
wangwu:x:1002:1002::/home/wangwu:/bin/bash
zhaoliu:x:1003:1003::/home/zhaoliu:/bin/bash

语法2

for ((初始值;循环控制条件;变量变化))
do
程序
done

在语法二中需要注意以下几点:

  • 初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。
  • 循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。
  • 变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。

语法二和其他语言中的 for 循环类似,也就是事先决定循环次数的固定循环。

实例 从1追加到100

#!/bin/bash
#从 1 加到100
s=0
for(( i=1;i<=100;i=i+1))
#定义循环100次
do
s=$(($s+$i))
#每次循环给变量s赋值
done
echo "The sum of 1+2+..+100 is : $s"
#输出从1加到100的和

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/244512.html

(0)
上一篇 2022年4月17日 10:30
下一篇 2022年4月17日 10:32

相关推荐

发表回复

登录后才能评论