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

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.xdnf.cn/news/19343.html

相关文章:

  • 层次分析法
  • 现代C++特性 并发编程:线程管理库 <thread>(C++11)
  • dayjs 常用方法总结
  • MySQL—— 概述 SQL语句
  • MSVC---编译器工具链
  • 【CUDA入门·Lesson 1】Ubuntu实战:CUDA 概念、nvidia-smi 工具与 GPU 参数详解
  • Docker从零学习系列之Dockerfile
  • 蓓韵安禧活性叶酸独立包装防漏贴心设计
  • 策略模式:模拟八路军的抗日策略
  • 性能测试工具-Slow Query Log
  • React学习教程,从入门到精通, ReactJS - 架构(6)
  • Java GC 销毁机制 与 Redis 过期策略深度对比
  • AI+IP双驱动:效率提升的关键
  • 查漏补缺——与日期有关的字符串
  • SAP Business One的设计哲学
  • Linux 网络编程:深入理解套接字与通信机制
  • 在Windows系统Docker中使用wsl2、容器、windows文件路径三种不同挂载方式的区别和性能差异
  • 大话 IOT 技术(1) -- 架构篇
  • 【代码随想录day 22】 力扣 39. 组合总和
  • 视频理解与行为识别全景综述
  • Multi-Head RAG: Solving Multi-Aspect Problems with LLMs
  • linux 内核 - 常见的文件系统介绍
  • AIA中断控制器IPI的Linux内核实现
  • Qt-Advanced-Docking-System: 一个基于 Qt 框架的高级停靠窗口系统
  • Spring boot注解介绍
  • Python 2025:AI代理、Rust与异步编程的新时代
  • BigDecimal账户分布式原子操作
  • IOT安全学习之IoT_Sec_Tutorial
  • 历史数据分析——寒武纪
  • Wi-Fi技术——MAC特性