一、for语句的结构
读取不通的变量值,用来逐个执行同一组命令
for 变量名 in 取值列表 #变量名是临时变量名从取值列表里面去读
do
命令序列
done
for语句应用实例
实例一
批量添加用户
用户名存放在user.txt文件中,每行一个
初始化密码均设为123456
验证脚本
#!/bin/bash
#定义集合
list=`cat /opt/users.txt`
#遍历创建新用户
for user in $list
do
#创建新用户
useradd $user
#设置密码
echo "123456" | passwd --stdin $user
echo "$user创建成功"
done
实例二
根据IP地址检查主机状态
IP地址存放在ipadds.txt文件中,每行一个
使用ping命令检测各主机的连通性
#!/bin/bash
#定义集合
ip_=`cat /opt/ipadds.txt`
#遍历
for ipaddress in $ip_
do
#pingIP地址
ping -c 3 -i 0.2 -W 3 $ipaddress &>/dev/null #-c 次数 -i 间隔多久在ping一次 -W 等待时间
if [ $? -eq 0 ];then
echo "${ipaddress} is up"
else echo "${ipaddress} is down"
fi
done
二、while语句的结构
重复测试某个条件,只要条件成立则反复执行
while 条件测试操作
do
命令序列
done
forx循环语句非常适合于列表对象不规律,且列表来源已固定(如某个列表文件)的场合。而对于要求控制循环次数。操作对象按数字顺序编号,按特定条件执行重复操作,适合while。
三、until语句的结构
重复测试某个条件,只要条件不成立则反复执行
until 条件测试操作
do
命令序列
done
until循环语句与while循环类似,while循环能实现的脚本until同样也可以实现,,但区别是while循环在条件真是继续执行循环,而until则是在条件为假时执行循环
while语句应用实例
实例一
批量添加用户
用户名称以stu开头,按数组顺序进行编号
一共添加20各用户,即stu1,stu2,stu3…stu20
从初始密码均设为123456
#!/bin/bash
i=1
user=stu$i
while [ $i -le 20 ]
do
echo stu$i
useradd stu$i
echo "123456" | passwd --stdin $user
echo "用户${user}输出成功"
let i++
done
until语句应用实例
实例一
计算1~50的和值
通过循环累加的方式计算1-50的和值
#!/bin/bash
i=1
sum=0
until [ $i -eq 51 ]
do
\#echo $i
let sum+=$i
let i++
done
echo "和为:$sum"