插件窝 干货文章 linux关系运算符怎么用

linux关系运算符怎么用

运算符 等于 示例 文件 502    来源:    2025-05-15

Linux Shell 关系运算符使用指南

在Linux Shell脚本中,关系运算符用于比较两个值或变量之间的关系。以下是主要的Shell关系运算符及其使用方法:

数值比较运算符

这些运算符用于比较数值:

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

示例代码

#!/bin/bash

a=10
b=20

if [ $a -eq $b ]
then
   echo "$a -eq $b : a 等于 b"
else
   echo "$a -eq $b: a 不等于 b"
fi

if [ $a -lt $b ]
then
   echo "$a -lt $b: a 小于 b"
fi

字符串比较运算符

这些运算符用于比较字符串:

运算符 描述 示例
= 等于 [ "$a" = "$b" ]
!= 不等于 [ "$a" != "$b" ]
-z 长度为零 [ -z "$a" ]
-n 长度不为零 [ -n "$a" ]
< 按字典序小于 [[ "$a" < "$b" ]]
> 按字典序大于 [[ "$a" > "$b" ]]

示例代码

#!/bin/bash

str1="abc"
str2="def"

if [ $str1 = $str2 ]
then
   echo "$str1 = $str2 : str1 等于 str2"
else
   echo "$str1 = $str2: str1 不等于 str2"
fi

if [[ $str1 < $str2 ]]
then
   echo "$str1 < $str2 : str1 小于 str2"
fi

文件测试运算符

这些运算符用于测试文件属性:

运算符 描述 示例
-e 文件/目录存在 [ -e $file ]
-f 是普通文件 [ -f $file ]
-d 是目录 [ -d $file ]
-r 可读 [ -r $file ]
-w 可写 [ -w $file ]
-x 可执行 [ -x $file ]
-s 文件大小不为零 [ -s $file ]
-L 是符号链接 [ -L $file ]

示例代码

#!/bin/bash

file="/var/log/syslog"

if [ -r $file ]
then
   echo "文件可读"
else
   echo "文件不可读"
fi

if [ -f $file ]
then
   echo "文件是普通文件"
fi

布尔运算符

运算符 描述 示例
! [ ! false ]
-o [ $a -lt 20 -o $b -gt 100 ]
-a [ $a -lt 20 -a $b -gt 100 ]

注意事项

  1. [ ]测试结构中,运算符和操作数之间需要有空格
  2. 对于字符串比较,最好将变量用双引号括起来,防止空变量导致语法错误
  3. [[ ]]结构中可以使用更强大的模式匹配和正则表达式
  4. 在bash中,(( ))结构可以用于算术比较,使用类似C语言的运算符(==, !=, >, <等)

希望这些信息对您在Linux Shell脚本编程中使用关系运算符有所帮助!