冲天香阵透长安,满城尽带黄金甲。这篇文章主要讲述for循环语句#yyds干货盘点#相关的知识,希望能为你提供帮助。
在实际工作环境中,经常会遇到某项任务需要多次执行的情况,而每次执行时仅仅是处理的对象不一样,其他命令完全相同。如:根据服务器清单检查各个主机的存活状态;根据ip地址黑名单设置拒绝访问的防火墙策略等。
这样繁琐的重复任务时,if语句已经不能满足需求。则我们需要for循环语句。
For语句的结构
使用for循环时,需要指定一个变量及可能的取值列表,针对每一个不同的取值重复执行相同的命令序列,直到变量值用完退出循环。在这里,“取值列表”称为for语句的执行条件,其中包括多个属性相同的对象,需要预先指定(如上面提到的ip黑名单)。
for 变量名 in 取值列表
do
命令序列
done
for语句的操作对象为用户指定的变量,并通过in关键字为该变量预先设置了一个取值列表,多个取值之间以空格进行分隔。位于do。。。。。done之间的命令序列称为“循环体”,其中的执行语句需要引用变量以完成相对的任务。
For语句的执行流程:首先将列表中的第一个取值赋予给变量,并执行do。。。。done循环体中的命令序列。然后将列表中的第二个取值赋值给变量,并执行循环体中的命令序列。。。。。。依次类推,直到列表中的所有取值用完,然后将跳至done语句,表示循环结束。
事例1:
根据姓名列表批量添加用户:根据员工列表,在Linux服务器中添加相应的用户账号。初始密码为123456.
#vi adduser.sh
#!/bin/bash
ULIST=$(cat /root/users.txt)
for UNAME in $ULIST
do
useradd $UNAME
echo “123456” | passwd --stdin KaTeX parse error: Expected EOF, got &
at position 7: UNAME &
?>
/dev/null don…(cat /root/iplist.txt)
for IP in $HLIST
do
ping -c 3 $IP &
>
/dev/null
if [ $? -eq 0 ]
then
echo “host $IP is up”
else
echo “host $IP is down”
fi
done
脚本中的iplist是ip地址文件。
事例3:批量添加用户
#!/bin/bash
#本脚本用来批量创建系统用户
echo ‘成功创建用户:’ >
/root/user_name
read -ep ‘请输入要创建的用户数量:’ num
for i in seq 1 $num
do
Grep(筛选)" user-$i" /etc/passwd >
/dev/null 2>
&
1
if [ ? ? n e 0 ] ;
t h e n u s e r a d d u s e r ? ? -ne 0 ];
then useradd user-??ne0];
thenuseradduser?i >
/dev/null 2>
&
1
if [ ? ? e q 0 ] ;
t h e n e c h o " u s e r ? ? -eq 0 ];
then echo "user-??eq0];
thenecho"user?i" >
>
/root/user_name
echo "user-i " ∣ p a s s w d u s e r ? i"| passwd user-i"∣passwduser?i --stdin >
/dev/null 2>
&
1
echo “user-i 创 建 成 功 ! " f i e l s e e c h o " u s e r ? i 创建成功!" fi else echo "user-i创建成功!"fielseecho"user?i 用户已存在,创建失败!”
fi
done
cat /root/user_name
【for循环语句#yyds干货盘点#】
推荐阅读
- liunx定时任务crontab命令#yyds干货盘点#
- CentOS 文件管理命令
- While循环语句#yyds干货盘点#
- case分支语句#yyds干货盘点#
- 干掉Session(这个跨域认证解决方案真的优雅!)
- linux目录与文件操作&vim
- 什么是 Razor,它和 Blazor 有什么关系()
- nagios安装部署#yyds干货盘点#
- nagiso安装和监控#yyds干货盘点#