shell循环

245 阅读1分钟

for循环

语法结构及特点

特点:遍历/列表式循环

一般语法

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

c语言风格的for循环

for ((初值;条件;步长控制))
do
  命令序列
done

for循环的执行流程

2021-06-15 22-10-33屏幕截图.png

脚本应用示例

# 批量添加用户账号
[root~] #
# !/bin/bash
for i in lg tj hh
do
 useradd $i
 echo "123456" | passwd --stdin $i
done

while循环

语法结构及特点

特点:条件式循环--反复测试条件,只要成立就执行命令序列 语法:

while 条件测试
do
 命令测试
done

while循环的执行流程

2021-06-15 22-11-43屏幕截图.png

脚本应用示例

# 批量添加用户(名称有规律)
[root~]# vim add.sh
#!/bin/bash
u="tuser"
i=1
while [ $i -le 5 ]
do
 useradd ${p}$i
 echo '123456' | passwd --stdin ${u}$i &> /dev/null
 let i++
done

中断及退出

相关指令

类型含义
break跳出当前所在的循环体,执行循环体后的语句
continue跳出本次循环
exit退出脚本,默认的返回值是0

实例

[root@svr5 ~]# vim  test.sh
#!/bin/bash
for  i   in   {1..5}
do
       [  $i  -eq  3 ]&& break //这里将break替换为continueexit分别测试脚本执行效果       echo $i
done
echo "Game Over"
[root@svr5 ~]# vim test.sh 
#!/bin/bash
for i in {1..20}
do
    [ $[i%6] -ne 0 ]  &&  continue
    echo $[i*i]
done