文章目录
1、if…else 语句
1.1 语句结构
if (条件) {
// 条件为真时执行的代码
} else {
// 条件为假时执行的代码
}
if (条件1) {
// 条件1为真
} else if (条件2) {
// 条件2为真
} else {
// 所有条件都不满足
}
1.2 案例
#!/bin/bash
#1、定义时间变量
a=$(date +%H)
#2、定义时间段 早上
if [ $a -ge 6 -a $a -lt 11 ];then
echo "现在时间是早上$a点"
#3、定义时间段 中午
elif [ $a -ge 11 -a $a -lt 13 ];then
echo "现在时间是中午$a点"
#4、定义时间段 下午
elif [ $a -ge 13 -a $a -lt 18 ];then
echo "现在时间是下午$a点"
#5、定时间段 晚上
elif [ $a -ge 18 -a $a -lt 24 ];then
echo "现在时间是晚上$a点"
else
echo "现在时间是凌晨 $a 点"
fi

2、for 循环
2.1 语句结构
for 变量 in 值列表
do
命令1
命令2
...
done
2.2 案例
#!/bin/bash
#1、定义变量IP地址的文件路径
HT_list=$(< /home/ipaddr.txt)
#2、定义好流程控制语句 for
for IP in $HT_list
do
#3、使用哪些命令完成ping 通文件中的IP地址
ping -c 3 -i 0.5 -W 3 "$IP" &> /dev/null
#4、定义假设ping通要给反馈 ping不通 也要给一个反馈
if [ $? -eq 0 ]; then
echo " Host $IP is up."
else
echo " Host $IP is down."
fi
done

3、while 语句
3.1 语句结构
while [条件判断]
do
# 循环体代码
done
3.2 案例
#!/bin/bash
while ps -aux|grep httpd | grep -v grep &> /dev/null
do
echo "httpd 正在运行中"
sleep 2
done
echo "httpd 不在运行中"

4、case 语句
case语句是Shell脚本中用于多条件分支判断的结构
4.1 语句结构
case 变量 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
;;
esac
4.2 案例
#! /bin/bash
case $1 in
"start")
systemctl start httpd
echo "启动服务"
;;
"stop")
systemctl stop httpd
echo "服务已关闭"
;;
"restart")
systemctl stop httpd && systemctl start httpd
echo "服务已重启"
;;
"status")
echo "查询服务状态"
systemctl status httpd
;;
*)
echo "请输入正确的命令:{ start|stop|restart|status}"
;;
esac



总结
今天介绍了shell脚本里常用的四个语句:if … else语句(经典语句多条件判断)、for循环(用于重复执行一系列命令)、while(常用于定时触发、注意死循环)、case(用于多条件分支判断)。
33万+

被折叠的 条评论
为什么被折叠?



