Linux shell中-eq怎么使用?shell脚本比较运算符有哪些

在 Linux Shell(特别是 Bash)中,-eq 是一个用于整数比较的测试运算符。

基本用途

-eq 用于判断两个整数是否相等

linux shell 脚本 if条件判断语句简单用法讲解
加载中
linux shell 脚本 if条件判断语句简单用法讲解
  • 如果相等,返回退出状态码 0(表示“真”/成功)。
  • 如果不相等,返回退出状态码 1(表示“假”/失败)。

语法格式

✅ 推荐方式:使用 [[ ... ]][ ... ]

if [ $a -eq $b ]; then
    echo "a 等于 b"
fi

或更现代的写法(Bash 推荐):

if [[ $a -eq $b ]]; then
    echo "a 等于 b"
fi

❌ 不推荐:使用 算术上下文

Linux shell中-eq怎么使用?shell脚本比较运算符有哪些

在 中,直接使用 或 ,而不是 -eq

if (( a == b )); then
    echo "a 等于 b"
fi

重要注意事项

⚠️ -eq 仅用于整数

-eq 只能比较整数,如果尝试比较浮点数(如 14),会报错:

$ [ 3.14 -eq 3.14 ]
bash: [: 3.14: integer expression expected

⚠️ 变量必须正确引用

如果变量可能为空,务必使用双引号包裹变量,避免语法错误:

# $a 为空,[ -eq 5 ] 会报错
[ "$a" -eq 5 ]  # ✅ 安全写法

⚠️ 与 的区别

Linux shell中-eq怎么使用?shell脚本比较运算符有哪些

  • -eq:用于整数相等比较。
  • 用于字符串相等比较(在 [ ][[ ]] 中)。
    [ "hello" == "hello" ]  # ✅ 字符串比较
    [ 5 -eq 5 ]             # ✅ 整数比较

其他常用整数比较运算符

Linux shell中-eq怎么使用?shell脚本比较运算符有哪些

运算符 含义 示例
-eq 等于 [ $a -eq $b ]
-ne 不等于 [ $a -ne $b ]
-gt 大于 [ $a -gt $b ]
-ge 大于等于 [ $a -ge $b ]
-lt 小于 [ $a -lt $b ]
-le 小于等于 [ $a -le $b ]

完整示例

#!/bin/bash
num1=10
num2=20
if [ $num1 -eq $num2 ]; then
    echo "num1 等于 num2"
else
    echo "num1 不等于 num2"
fi
# 输出: num1 不等于 num2
  • 使用 -eq 进行整数相等比较。
  • 始终在变量周围加双引号以处理空值。
  • 对于浮点数,请使用 bcawk 或 配合浮点运算。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/487433.html

(0)
服务器和客户端连接超时如何解决?如何排查网络连接故障
上一篇 2026年7月12日 15:13
大模型语音控制鼠标到底怎么样?语音鼠标真的好用吗?
下一篇 2026年3月12日 04:03

相关推荐

  • Linux每日命令怎么用?常用Linux命令大全

    Linux 每日命令并非单纯的代码堆砌,而是通过高效组合基础指令(如 ls, grep, awk)与系统监控工具(如 top, df),实现从文件管理到性能调优的全链路自动化运维,这是提升服务器管理效率的核心路径,在服务器运维的日常场景中,面对成千上万个进程和海量日志,新手往往感到无从下手,业内专家指出,掌握高……

    2026年7月6日
    10500
  • linux c mutex怎么用?linux c mutex互斥锁用法详解

    在 Linux C 编程中,mutex(互斥锁)是用于线程同步的重要机制,确保多个线程在访问共享资源时不会发生竞态条件(race condition),Linux 提供了 POSIX 线程库(pthreads),其中包含了对 mutex 的支持,以下是关于 Linux C 中 mutex 的基本概念、常用函数以……

    2026年7月12日
    10100
  • linux时间为何从1970年开始?unix纪元时间戳起源

    Linux系统中的时间起点1970年1月1日00:00:00被称为“Unix纪元”,它是所有Linux发行版记录时间戳的标准基准,理解这一机制是排查系统日志、配置定时任务及解决跨时区数据同步问题的核心前提,在Linux的世界里,时间不仅仅是一串数字,它是系统运行的心跳,是文件修改的指纹,也是网络通信同步的锚点……

    2026年7月6日
    12600
  • linux如何并行执行命令?linux并行执行任务最佳实践

    Linux并行执行的核心在于利用多核CPU资源,通过后台运行、GNU Parallel、Xargs或分布式工具如Slurm,将耗时任务拆解并同时处理,从而大幅缩短整体运行时间,在服务器运维和大数据处理场景中,单线程执行往往意味着资源的浪费,想象一下,如果让一个人同时做十件事,他必须来回切换,效率极低;但如果让十……

    2026年7月4日
    10400
  • Nodejs在Linux下如何运行?nodejs linux常用命令大全

    在Linux环境中运行Node.js应用,核心在于通过NVM管理多版本环境、使用PM2实现进程守护与集群部署,并配合系统级防火墙与日志轮转策略保障服务的高可用性与安全性,很多开发者在将Node.js项目从Windows迁移至Linux服务器时,常因环境差异遭遇“在我电脑上能跑”的尴尬局面,Linux作为服务器端……

    2026年7月5日
    14800
  • linux sdio wifi驱动怎么装?linux sdio wifi驱动安装教程

    Linux系统下SDIO WiFi模块驱动失败或连接不稳定,核心原因通常在于内核版本兼容性不足、设备树(Device Tree)配置错误或固件文件缺失,通过正确加载固件并调整内核参数可解决绝大多数问题,在嵌入式开发领域,Linux与SDIO WiFi的结合几乎是标配方案,从早期的RTL8188到现在的MT760……

    2026年7月4日
    2810
  • 如何终止Linux脚本运行?linux kill进程命令详解

    终止 Linux 脚本最可靠的方式是结合 pkill 或 kill 命令精准定位进程,并在脚本内部利用 trap 信号处理机制实现优雅退出,避免资源泄露,在服务器运维和自动化部署的日常工作中,脚本意外挂起或陷入死循环是常见痛点,当我们需要手动干预时,盲目使用 kill -9 虽然简单粗暴,但往往导致数据损坏或进……

    2026年7月8日
    18900
  • Linux发包流程是怎样的?Linux网络数据包发送原理

    Linux发包的核心流程是:数据包从应用层生成后,经内核协议栈层层封装,通过路由查找确定出口网卡,最终由网卡驱动硬件发送;若需加速,可借助DPDK或XDP技术绕过内核网络栈,理解Linux网络发包机制,不能仅停留在“点击发送”这一表象,这背后是一套精密协作的系统工程,涉及用户空间、内核空间以及硬件驱动的深度交互……

    2026年7月8日
    2410
  • Linux如何重启Redmine?Redmine重启命令是什么

    在Linux环境下重启Redmine通常通过重启Apache/Nginx服务或Rails进程实现,核心命令为sudo systemctl restart apache2或sudo systemctl restart nginx,操作前务必先备份数据库以防数据丢失,Redmine作为开源项目管理工具,其稳定性直接……

    2026年7月10日
    13800
  • Linux只读账号怎么设置?如何创建Linux只读权限用户

    在Linux系统中创建只读账号的核心方法是利用sudoers文件的NOPASSWD权限限制,结合目录权限的chmod chown控制,确保用户仅能读取特定资源而无法执行写操作或提权命令,很多运维新手在分配服务器权限时,往往陷入“要么全权管理,要么完全隔离”的极端误区,构建一个安全的只读环境并非高不可攀的技术壁垒……

    2026年7月6日
    15000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注