0


Shell循环语句详解--for循环

文章目录

引言:在shell编程中,除了选择判断之外,对一些特殊情况需要进行循环操作,比如遍历目录文件,批量添加用户等操作,都需要循环操作

一.for循环基本格式

语法格式:

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

在这里插入图片描述
for循环执行次数,取决于取值列表中的变量个数

foriin{1..5};doecho$i;done{1..5}为取值范围1到5
echo$i 输出当前的取值

在这里插入图片描述

for((i=1;i<=5;i++));doecho$i;done
使用(())双括号,可以支持C语言的一些命令
i=1;i<=5;i++ #i初始值为1,如果i小于等于5时执行循环,每次循环后+1

在这里插入图片描述

foriin`seq5`;doecho$i;doneseq5 与{1..5}效果一样

在这里插入图片描述

foriin`seq5`;doecho"hello world";done
使用变量i 循环5次
每次执行echo "hello world"命令

在这里插入图片描述
使用for循环遍历当前目录
在这里插入图片描述

二.for循环脚本

利用for循环,实现的简单脚本

2.1测试主机状态

检测局域网内,主机存活状态

#!/bin/bashforIPin`cat /root/for/ip.txt`#ip文件为存放ip地址的doping -c 3 -i 0.2 -w 3$IP&>/dev/null #-c 3 ping3次主机 -i 0.2ping主机间隔 -w 3ping主机超时间隔if[$? -eq 0];thenecho"host $IP is up"elseecho"host $IP is down"fidone

在这里插入图片描述

在这里插入图片描述

2.2添加用户

利用for循环与if条件语句,进行批量添加用户

#!/bin/bashforuserin`cat /root/for/a.txt`#a.txt为存放用户名单文件doifgrep$user /etc/passwd &>/dev/null;then#检查用户是否存在 echo"$user用户已经存在"elif[ -d /home/$user];then#检查home下是否存在和用户相同的目录 echo"$user用户存在宿主目录"elseuseradd$user#添加用户并设置初始密码 echo"123456"|passwd --stdin $user&>/dev/null  
       echo"$user用户已经创建,初始密码为:123456"fidone

在这里插入图片描述

在这里插入图片描述
用户状态存在或存在异常
在这里插入图片描述

2.3乘法表

利用for循环,打印99乘法表

#!/bin/bashfor((i=1;i<=9;i++))#此处也可以写  for i in {1..9}dofor((j=1;j<=i;j++))#此处也可写 for j in `seq $i`doecho -n -e "$j*$i=$[j*i]\t"#-n不换行输出;-e使用\转义符;\t横向制表;若不用-e,则\t为普通字符doneechodone

在这里插入图片描述
在这里插入图片描述

三.总结

1.for循环在实际生成中应用非常多,避免人工重复的去操作某个事情
2.for循环中的列表支持正则表达式
3.for循环中使用(()),双括号内支持C语言的命令
4.for循环中的变量,只是循环去取值列表中取值,然后进行do操作,所以取值列表中的参数个数,决定了循环的次数

标签: linux 运维 云计算

本文转载自: https://blog.csdn.net/weixin_44175418/article/details/124444938
版权归原作者 Sq夏颜 所有, 如有侵权,请联系我们删除。

“Shell循环语句详解--for循环”的评论:

还没有评论