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

掌握Linux Shell比较运算符(从零开始学会条件判断)

在编写 Linux Shell 脚本时,经常需要根据某些条件来决定程序的执行流程。这就需要用到 比较运算符。本文将用通俗易懂的方式,带你全面了解 Shell 中的各类比较运算符,无论你是刚接触 Linux 的小白,还是有一定经验的用户,都能轻松掌握!

掌握Linux Shell比较运算符(从零开始学会条件判断) Linux Shell比较运算符 Shell脚本条件判断 Shell字符串比较 Shell数值比较 第1张

一、什么是 Shell 比较运算符?

Shell 比较运算符用于在条件语句(如 if)中对两个值进行比较,返回“真”或“假”的结果。根据比较对象的不同,可分为两大类:

  • 数值比较:用于整数之间的大小判断。
  • 字符串比较:用于文本内容是否相等、是否为空等判断。

二、数值比较运算符

在 Shell 中,数值比较不能使用常见的 >< 等符号(这些在 Shell 中有特殊含义),而是使用以下专用符号:

运算符 含义 示例
-eq 等于(equal) [ $a -eq $b ]
-ne 不等于(not equal) [ $a -ne $b ]
-gt 大于(greater than) [ $a -gt $b ]
-lt 小于(less than) [ $a -lt $b ]
-ge 大于等于(greater or equal) [ $a -ge $b ]
-le 小于等于(less or equal) [ $a -le $b ]

数值比较示例

#!/bin/basha=10b=20if [ $a -lt $b ]; then  echo "$a 小于 $b"fi# 输出:10 小于 20  

三、字符串比较运算符

字符串比较常用于判断两个文本是否相同、是否为空等。注意:字符串必须用双引号括起来以避免空格等问题。

运算符 含义 示例
=== 等于 [ "$str1" = "$str2" ]
!= 不等于 [ "$str1" != "$str2" ]
-z 字符串长度为0(空) [ -z "$str" ]
-n 字符串长度不为0(非空) [ -n "$str" ]

字符串比较示例

#!/bin/bashname="Linux"if [ -n "$name" ]; then  echo "变量 name 不为空"fiif [ "$name" = "Linux" ]; then  echo "欢迎使用 Linux!"fi  

四、注意事项与常见错误

  • 方括号 [ ] 内部左右必须有空格,例如 [ $a -eq $b ] 正确,而 [$a -eq $b] 会报错。
  • 字符串变量建议始终用双引号包裹,防止变量为空或包含空格时报错。
  • 不要在数值比较中使用 ><,它们会被 Shell 解释为重定向符号。

五、总结

通过本文,你已经掌握了 Linux Shell 比较运算符 的基本用法,包括 Shell 脚本条件判断Shell 字符串比较Shell 数值比较 的核心技巧。这些知识是编写自动化脚本、系统管理任务的基础。

多动手实践,你会发现 Shell 脚本其实并不难!快去写一个自己的判断脚本试试吧!