当前位置: 首页 > news >正文

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(用于多条件分支判断)。

http://www.dtcms.com/a/360241.html

相关文章:

  • Overleaf中文显示
  • 把 `QVector<QPointF>` 写入文件:三种风格、三段独立可编译的完整代码
  • APB协议​​ 构建一个完整的 ​​UVM验证VIP Agent介绍类的要素
  • 《隐性质量:决定软件生命周期的看不见的竞争力》
  • 【Linux】创建线程
  • flutter工程
  • 包的相对导入
  • Android开发简介
  • Redis常见数据类型及应用场景
  • Pytest 插件介绍和开发
  • 极客时间AI 全栈开发实战营毕业总结(2025年8月31日)
  • NCCL-TEST ib集群测试UCX代替方案
  • mit6.031软件构造 笔记 Testing
  • ROI、 binning、下采样功能区别
  • windows编译minicap.so文件
  • 由题构造 嵌入汇编(汇编)
  • NAS Docker 安装N8N
  • 计算机视觉与深度学习 | 双目立体特征提取与匹配算法综述——理论基础、OpenCV实践与MATLAB实现指南
  • 猛犸Lark max 无线麦克风录音爆音问题的解决
  • 【STC库函数】使用芯片自带的EEPROM来保存掉电不丢失的数据
  • 开发常用工具专栏
  • 赵玉平《梁山政治》读书笔记(下部)
  • wifi控制舵机
  • WinExec
  • Nginx反向代理及配置
  • c++ 线程局部存储(Thread-Local Storage,TLS)
  • Langflow Memory 技术深度分析
  • java--浅拷贝深拷贝
  • Introduction to GIS —— Chapter 3(Vector Data Model)
  • 雪花算法生成分布式ID