————前言————
Shell脚本编程中,有几种常见的循环结构,包括for
循环、while
循环和until
循环,总的来说,循环在Shell编程中扮演着至关重要的角色,它们使得自动化任务变得更加容易,提高了效率,并且可以处理各种各样的编程需求。
for
循环允许你对一组元素(如数组中的元素、文件中的行、命令的输出等)进行迭代。
最常用的for循环
语法如下:
for i in list
do
执行语句
done
i
:循环变量,用于依次存储列表中的元素。list
:循环的元素列表,可以是由空格分隔的字符串,也可以是数组等。实例如下:
利用for循环在/目录下创建csdni个文件夹
#!/bin/bash
for i in {1..10}
do
mkdir /csdn$i
done
输出结果:
这是最基本的for循环语句
还可以用另外一种写法(等同于上边的写法)
#!/bin/bash
for i in $(seq 1 10)
do
mkdir /csdn$i
done
实验创建用户
#!/bin/bash
#2024-3-7
for i in {1..10}
do
useradd "csdn$i"
echo "csdn$i创建成功"
done
那么留给小伙伴们一个动手操作的实验 就是利用for循环来自动删除上边创建的用户
人力部门给你发来一个名单现如今需要 创建对应的用户
如果名单有300个名字该如何创建呢 该不会是在人力部门报名完毕 之后跑到运维部来一个个创建用户吧
哈哈哈那样不得累坏
如下所示使用for几个命令搞定 这就是for循环的好处 当然使用其他循环也是可以实现的 下边举个例子供大家参考:
#!/bin/bash
[root@localhost ~] cat /etc/tables
zhangsan
lisi
wangwu
csdn
csdn2
xiaoming
vim for.sh 编辑脚本
for i in `cat /etc/tables` 写入循环
do
useradd "$i"
echo "$i创建成功"
done
我们可以像 C 编程一样迭代循环。
#!/bin/bash
for ((i=1; i<=20; i++))
do
echo $i
done
打印从5到1
#!/bin/bash
for ((i=5; i>=1; i--))
do
echo $i
done
while循环又叫做死循环
while
循环是Shell脚本编程中一种常见的循环结构,它允许你根据条件重复执行一组命令,直到条件不再满足为止。
语法格式:
1 while 条件测试
2 do
3 执行命令
4 done
执行命令
:循环条件,可以是任何能够产生退出状态码(0或非0)的表达式。实例如下:
#!/bin/bash
while :
do
let i++
echo $i
done
大家可以试一下这个我就不截图了。。。。。
通常循环都是结合判断语句来使用的
#!/bin/bash
while :
do
let i++
if [ $i -eq 10 ];then
echo "while实验结束!"
break
else
echo $i
fi
done
until
循环是Shell脚本编程中的另一种常见循环结构,与while
循环类似,但它在条件为假时执行循环体,直到条件为真为止。
语法格式:
until [ 条件判断]
do
# 执行语句
done
do
和 done
:do
标记了循环体的开始,done
标记了循环体的结束。循环体是在每次循环迭代时执行的一组命令。
实例如下:
#!/bin/bash
let i=0
until [ $i -eq 5 ]
do
let i++
sleep 0.1
echo $i
done
详解这个过程
i
的值为0。until
循环,检查条件$i -eq 5
是否为真,因为i
的初始值是0,条件为假,因此执行循环体。let i++
递增i
的值,此时i
的值变为1。echo $i
打印出当前的i
值,即1。i
的值等于5,此时循环终止。for variable in list
,其中variable
是循环变量,list
是迭代的元素列表。while [ condition ]
,循环条件的结果必须是退出状态码为0或非0的表达式。while
循环相反,它在条件为假时执行循环体,直到条件为真。until [ condition ]
,循环条件的结果同样必须是退出状态码为0或非0的表达式。总结:
for
循环适用于已知循环次数的情况,可以用于迭代已知的元素列表。while
循环适用于根据条件决定循环执行的情况,循环次数不一定固定。until
循环也适用于根据条件决定循环执行的情况,与while
循环不同的是它在条件为假时执行循环体。选择合适的循环结构取决于具体的编程需求和循环条件。