shell编程基础入门-2
文章目录
- 1、if...else 语句
- 1.1 语句结构
- 1.2 案例
- 2、for 循环
- 2.1 语句结构
- 2.2 案例
- 3、while 语句
- 3.1 语句结构
- 3.2 案例
- 4、case 语句
- 4.1 语句结构
- 4.2 案例
- 总结
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 ];thenecho "现在时间是早上$a点"#3、定义时间段 中午elif [ $a -ge 11 -a $a -lt 13 ];thenecho "现在时间是中午$a点"#4、定义时间段 下午elif [ $a -ge 13 -a $a -lt 18 ];thenecho "现在时间是下午$a点"#5、定时间段 晚上
elif [ $a -ge 18 -a $a -lt 24 ];thenecho "现在时间是晚上$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 ]; thenecho " Host $IP is up." elseecho " 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 2done
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(用于多条件分支判断)。