循环语句——for、while、until

目录

for循环

1、执行机制:

for循环格式:

while循环语句

数字打印

 while语句批量创建用户

 until循环语句

作用:

格式:

until循环导图

 示例演示

数字打印(1~10)

求1~10的和


for循环

1、执行机制:

        遍历;依次将列表中的元素赋值给“变量名”;每次赋值后即执行以此循环体;直到列表中的元素耗尽,循环结束

for循环格式:

格式一:

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

格式二:

for (( 表达式1; 表达式2; 表达式3 ));

        do

                命令

        done

例:

格式一示例

代码块

[root@localhost ~]#for i in {1..10}
> do
> echo $i
> done

结果视图

循环语句——for、while、until_第1张图片

格式一中运用的是遍历,依次将值赋给变量之后挨个输出值

 格式二示例:

代码块

for ((i=1; i<=10; i++))
> do
> echo $i
> done

结果视图

循环语句——for、while、until_第2张图片

 格式二中需要有迭代,并且要给变量一个初始值,使迭代能够执行

shell脚本for语句示例:

示例一

求1~10的和

代码

#!/bin/bash
#for语句求1~10的和
sum=0
for i in {1..10}
do
  sum=$[ sum+i ]
done
echo "求和的结果是$sum"

代码截图:

循环语句——for、while、until_第3张图片

结果截图:

 示例二

批量创建用户

代码:

#!/bin/bash
#批量创建用户
for user in $(cat /demo/users.txt)
do
  useradd $user
  echo "123456" |passwd --stdin $user
done

代码截图:

循环语句——for、while、until_第4张图片

结果截图:

循环语句——for、while、until_第5张图片

 tip:这段代码是显示更改密码的过程,若要不显示密码更改过程,则可以在“echo "123456" | passwd --stdin $user”后加上“>> /dev/null”将显示内容放到回收站内,则不会显示过程

while循环语句

while格式:

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

while循环示意图:

循环语句——for、while、until_第6张图片

 实验示例

数字打印

[root@localhost ~]#a=0
[root@localhost ~]#while [ $a -le 10 ]
> do
> echo $a
> let a++
> done
0
1
2
3
4
5
6
7
8
9
10
[root@localhost ~]#

结果截图:

循环语句——for、while、until_第7张图片

 while语句批量创建用户

要求添加十个用户,用户名以stu开头,按照顺序进行编号,初始密码设为123456

#!/bin/bash
#批量创建用户
a=1
while [ $a -le 10 ]
do
  useradd stu$a -M
  echo "123456" | passwd --stdin stu$a >/dev/null
  let a++
done

结果截图:

循环语句——for、while、until_第8张图片

 until循环语句

作用:

        重复测试某个条件

格式:

until    条件测试

do

    命令

done

until循环导图

循环语句——for、while、until_第9张图片

 示例演示

数字打印(1~10)

[root@localhost demo1]#
[root@localhost demo1]#a=1
[root@localhost demo1]#until [ $a -gt 10 ]
> do
> echo $a
> let a++
> done
1
2
3
4
5
6
7
8
9
10

循环语句——for、while、until_第10张图片

tip:until的用法与while正好相反 

求1~10的和

#!/bin/bash
sum=0
i=1
until [ $i -gt 10 ]
do
  let sum=$[sum+i]
  let i++
done
echo "1到10的求和结果是:$sum"

结果截图:

循环语句——for、while、until_第11张图片

你可能感兴趣的:(linux)