插件窝 干货文章 什么是linux关系运算符逻辑

什么是linux关系运算符逻辑

运算符 bash 字符串 逻辑 100    来源:    2025-05-15

Linux Shell 中的关系运算符和逻辑运算符

在 Linux Shell 脚本编程中,关系运算符和逻辑运算符是控制程序流程的重要工具。以下是它们的详细说明:

关系运算符

关系运算符用于比较两个值或变量之间的关系,返回真(true)或假(false)。

数值比较运算符

  1. -eq - 等于 (Equal)

    [ $a -eq $b ]
    
  2. -ne - 不等于 (Not Equal)

    [ $a -ne $b ]
    
  3. -gt - 大于 (Greater Than)

    [ $a -gt $b ]
    
  4. -lt - 小于 (Less Than)

    [ $a -lt $b ]
    
  5. -ge - 大于等于 (Greater or Equal)

    [ $a -ge $b ]
    
  6. -le - 小于等于 (Less or Equal)

    [ $a -le $b ]
    

字符串比较运算符

  1. = - 字符串相等

    [ "$a" = "$b" ]
    
  2. != - 字符串不等

    [ "$a" != "$b" ]
    
  3. -z - 字符串长度为0

    [ -z "$a" ]
    
  4. -n - 字符串长度非0

    [ -n "$a" ]
    
  5. < - 字符串小于 (按字典顺序)

    [[ "$a" < "$b" ]]
    
  6. > - 字符串大于 (按字典顺序)

    [[ "$a" > "$b" ]]
    

逻辑运算符

逻辑运算符用于组合多个条件。

  1. ! - 逻辑非 (NOT)

    [ ! false ]
    
  2. -a - 逻辑与 (AND) (在 [ ] 中使用)

    [ $a -eq $b -a $c -eq $d ]
    
  3. -o - 逻辑或 (OR) (在 [ ] 中使用)

    [ $a -eq $b -o $c -eq $d ]
    
  4. && - 逻辑与 (AND) (在 [[ ]] 或命令中使用)

    [[ $a -eq $b && $c -eq $d ]]
    
  5. || - 逻辑或 (OR) (在 [[ ]] 或命令中使用)

    [[ $a -eq $b || $c -eq $d ]]
    

示例

#!/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

# 字符串比较
str1="abc"
str2="def"

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

# 逻辑运算
if [ $a -lt 100 -a $b -gt 15 ]
then
   echo "$a 小于 100 且 $b 大于 15 : 返回 true"
else
   echo "$a 小于 100 且 $b 大于 15 : 返回 false"
fi

注意事项

  1. [ ] 测试结构中,运算符和操作数之间需要有空格
  2. 字符串比较最好用双引号括起来,防止空变量导致语法错误
  3. [[ ]][ ] 的增强版,支持更多特性
  4. (( )) 中进行算术比较时,可以使用 ==, !=, >, < 等C语言风格的运算符

这些运算符是Shell脚本中条件判断和流程控制的基础,熟练掌握它们对于编写高效的Shell脚本非常重要。