1、单分支的if语句
if 条件测试操作
then 命令序列
fi
例:
mou="/var/www/html"
if [ ! -d $mou ]
then
mkdir -p $mou
fi
2、双分支的if语句
if 条件测试操作
then 命令序列1
else 命令序列2
fi
例:
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ]
then
echo "Host $1 is up."
else //不成立 反则执行下面语句
echo "Host $1 is down."
fi
3、多分支的if语句
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
例:
read -p "请输入您的分数(0-100):" GRADE
if [ $GRADE -ge 85 ] && [ $GRADE -le 100 ] ;then
echo "$GRADE 分!优秀"
elif [ $GRADE -ge 70 ] && [ $GRADE -le 84 ] ;then
echo "$GRADE 分,合格"
else
echo "$GRADE 分?不合格"
fi
for循环:遍历所有的变量
格式:
for 变量名 in 列表
do
命令序列
done
例:
例:根据IP地址检查主机情况
vim ping.txt
192.168.6.10
192.168.6.20
192.168.6.30
vim chk.sh
#! /bin/bash
a=$(cat /root/ping.txt) &>/dev/null
for i in $a
do
ping -c 3 $i &> /dev/null
if [ $? -eq 0 ];
then
echo "host $i is up"
else
echo "host $i is down"
fi
done
while循环
while:只要条件成立,执行循环
要求控制循环次数,操作对象按数字顺序编号,按特定条件执行重复操作哦情况,则更适合。
格式:
while [ 条件测试 ]
do
命令序列
done
例:连续创建指定名称和数量的用户
#!/bin/bash
a=1
read -p "请输入需要创建的用户名:" u
read -p "请输入创建的数据:" unm
while [ $a -le $unm ]
do
useradd $u$a
echo "123.com" | passwd $u$a --stdin
let a++
done