当前位置:首页 > 服务器技术 > 正文

Linux Shell条件判断实战(从零学会用Shell检测硬件信息)

在日常的 Linux 系统管理和自动化运维中,我们经常需要根据系统的硬件状态来执行不同的操作。例如:当内存不足时发送警告、当磁盘空间快满时清理日志等。这些任务的核心就是 Linux Shell 条件判断

本文将手把手教你如何使用 Shell 脚本中的 if 语句结合系统命令,实现对硬件状态的检测与响应。即使你是完全的新手,也能轻松上手!

Linux Shell条件判断实战(从零学会用Shell检测硬件信息) Shell条件判断 Shell脚本硬件检测 Shell if语句 系统信息获取 第1张

一、Shell 条件判断基础

Shell 中最常用的条件判断结构是 if ... then ... else ... fi。基本语法如下:

if [ 条件 ]; then    # 条件为真时执行的命令else    # 条件为假时执行的命令fi

注意:[ ] 是测试命令,左右必须有空格!

二、获取硬件信息的常用命令

在写条件判断前,我们需要先知道如何获取硬件信息。以下是几个关键命令:

  • free -m:查看内存使用情况(单位 MB)
  • df -h:查看磁盘空间使用情况
  • lscpu:查看 CPU 信息
  • lsblk:列出所有块设备(硬盘、分区等)

三、实战:检测内存是否低于阈值

假设我们希望当可用内存低于 500MB 时,打印警告信息。我们可以这样写脚本:

#!/bin/bash# 获取可用内存(单位:MB)available_mem=$(free -m | awk 'NR==2{print $7}')# 判断是否小于500MBif [ "$available_mem" -lt 500 ]; then    echo "⚠️ 警告:可用内存仅剩 ${available_mem}MB,低于安全阈值!"else    echo "✅ 内存充足:当前可用 ${available_mem}MB"fi

这里用到了 awk 提取第二行第七列(即可用内存),然后通过 -lt(less than)进行数值比较。这是典型的 Shell 脚本硬件检测 应用。

四、实战:检测磁盘使用率

我们也可以检测根分区(/)的使用率是否超过 80%:

#!/bin/bash# 获取根分区使用率(去掉百分号)usage=$(df / | awk 'NR==2{gsub(/%/,"",$5); print $5}')if [ "$usage" -gt 80 ]; then    echo "⚠️ 警告:磁盘使用率已达 ${usage}%,建议清理!"else    echo "✅ 磁盘健康:当前使用率 ${usage}%"fi

这个例子展示了如何结合 dfawk 提取关键数据,并用于 系统信息获取 与判断。

五、小贴士:常见比较运算符

类型 运算符 说明
数值比较 -eq, -ne, -lt, -le, -gt, -ge 等于、不等于、小于、小于等于、大于、大于等于
字符串比较 =, !=, -z 相等、不等、是否为空

六、总结

通过本文,你已经掌握了如何使用 Linux Shell 条件判断 结合系统命令来监控硬件状态。无论是内存、磁盘还是 CPU,只要能通过命令获取数据,就能用 if 语句做出智能响应。

记住:自动化运维的第一步,就是学会让脚本“看懂”你的系统。现在,你可以尝试编写自己的硬件监控脚本了!

关键词:Linux Shell条件判断、Shell脚本硬件检测、Shell if语句、系统信息获取