Linux Shell编程及自动化运维实现-循环
一.shell循环:for
1. 语法结构
- 语法
for 变量名 [ in 取值列表 ]
do
循环体
done
- 示例
自动创建3个用户
[root@localhost ~]# cat useradd-for.sh
#!/bin/bash
for i in {
1..3}
do
useradd u$i
echo "u$i created !"
done
或者
for i in $(seq 1 3)
for i in `seq 3`
- 对比c语言
C语言:
for ((初值;条件;步长))
do
循环体
done
2.案例1:ping测试主机
- 通过循环工具,探测网段主机,将在线主机记录在文本中。
[root@localhost ~]# cat ping-for.sh
>up.txt
>down.txt
#每次执行前会清空up,down文件
#!/bin/bash
for i in `seq 255`
do
ip=10.8.162.$i
ping -c1 -W1 $ip &> /dev/null
if [ $? -eq 0 ]
then echo "$ip" &>> up.txt
else echo "$ip" &>> down.txt
fi
done
3.案例2:通过用户列表文件创建用户
- 通过用户列表文件创建用户
[root@localhost ~]# vim user.txt
u1
u2
u3
[root@localhost ~]# vim useradd-for.sh
#!/bin/bash
for user in `cat user.txt`
do
useradd $user
echo "$user is created"
done
- 用户可以使用参数的形式,自定义用户名文件。
如果用户没有输入用户名文件,提示用户输入。
如果用户输入的不是文件,提示用户更正。
启动循环创建用户
如果用户已经存在,提示存在。
如果用户不存在,则创建成功,提示成功。