linux 第三章 shell编程及自动化运维-循环
一、shell循环 for
1、语法结构
for 变量名 [in 取值列表]
do
循环体
done
- 示例
需求:自动循环创建10个用户
写法一
#!/bin/bash
for i in {
1..10}
do
useradd "user$i"
done
写法二
#!/bin/bash
for i in $(seq 1 10) #数数seq,优先执行
do
useradd "user$i"
done
写法三
#!/bin/bash
for i in `seq 1 10` #优先执行
do
useradd "user$i"
done
2、案例1:ping测试主机
通过for循环探测全网在线主机
[root@localhost ~] vim /jiao_ben/ping.sh
#!/bin/bash
>ip.txt #输入重定向,每次执行把文件当中的内容清空(覆盖),为了防止第二次执行脚本会出现重复的在线ip
for i in {
1..3}
do
{
ip=192.168.18.$i
ping -c1 -W1 $ip &> /dev/null #ping不通时,W只等一秒
if [ $? -eq 0 ]
then
echo "$ip" | tee -a ip.txt #-a追加
fi
} & # { } & 把大括号中的内容丢到后台执行,执行速度非常快 {}与&中间要空格
done
wait
echo "完成" #等程序执行完等待一会告诉用户完成