在日常的 Linux 系统管理和自动化运维中,我们经常需要根据系统的硬件状态来执行不同的操作。例如:当内存不足时发送警告、当磁盘空间快满时清理日志等。这些任务的核心就是 Linux Shell 条件判断。
本文将手把手教你如何使用 Shell 脚本中的 if 语句结合系统命令,实现对硬件状态的检测与响应。即使你是完全的新手,也能轻松上手!
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 这个例子展示了如何结合 df 和 awk 提取关键数据,并用于 系统信息获取 与判断。
| 类型 | 运算符 | 说明 |
|---|---|---|
| 数值比较 | -eq, -ne, -lt, -le, -gt, -ge | 等于、不等于、小于、小于等于、大于、大于等于 |
| 字符串比较 | =, !=, -z | 相等、不等、是否为空 |
通过本文,你已经掌握了如何使用 Linux Shell 条件判断 结合系统命令来监控硬件状态。无论是内存、磁盘还是 CPU,只要能通过命令获取数据,就能用 if 语句做出智能响应。
记住:自动化运维的第一步,就是学会让脚本“看懂”你的系统。现在,你可以尝试编写自己的硬件监控脚本了!
关键词:Linux Shell条件判断、Shell脚本硬件检测、Shell if语句、系统信息获取
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025121701.html