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

Linux Shell运算符详解(从零开始掌握Shell脚本中的逻辑与比较)

在Linux系统中,Shell脚本是自动化任务、系统管理和日常运维的强大工具。而要编写高效的Shell脚本,理解并熟练使用Linux Shell运算符是必不可少的一步。无论你是刚接触Linux的小白,还是有一定经验的用户,本文都将带你从基础到进阶,全面掌握Shell中的各类运算符。

Linux Shell运算符详解(从零开始掌握Shell脚本中的逻辑与比较) Shell运算符 Shell脚本编程 条件判断运算符 字符串比较运算符 第1张

一、什么是Shell运算符?

Shell运算符用于在脚本中执行数学计算、字符串比较、逻辑判断等操作。它们通常出现在条件语句(如 if)、循环(如 while)或变量赋值中。

二、常用Shell运算符分类

Shell运算符主要分为以下几类:

  • 算术运算符:用于数学计算(如加减乘除)
  • 关系/比较运算符:用于数值或字符串的比较
  • 布尔/逻辑运算符:用于组合多个条件(如 AND、OR)
  • 字符串运算符:专门用于处理字符串
  • 文件测试运算符:用于检测文件属性(如是否存在、是否可读等)

三、算术运算符示例

在Shell中,算术运算通常通过 $((...))expr 命令实现:

# 使用 $((...)) 进行算术运算a=10b=3echo $((a + b))  # 输出 13echo $((a * b))  # 输出 30echo $((a % b))  # 输出 1  

四、关系与字符串比较运算符

if 条件判断中,我们经常使用关系运算符。注意:在 [ ] 中,必须有空格!

数值比较

  • -eq:等于(equal)
  • -ne:不等于(not equal)
  • -gt:大于(greater than)
  • -lt:小于(less than)
num=5if [ $num -gt 3 ]; then  echo "数字大于3"fi  

字符串比较

这是字符串比较运算符的核心用法:

  • ===:字符串相等
  • !=:字符串不相等
  • -z:字符串长度为0(空)
  • -n:字符串长度非0(非空)
str="hello"if [ "$str" = "hello" ]; then  echo "匹配成功!"fi# 检查字符串是否为空name=""if [ -z "$name" ]; then  echo "name 是空的"fi  

五、逻辑运算符

用于组合多个条件,提升脚本灵活性:

  • &&:逻辑 AND(两个条件都为真才成立)
  • ||:逻辑 OR(任一条件为真即成立)
  • !:逻辑 NOT(取反)
age=20has_id=trueif [ $age -ge 18 ] && [ "$has_id" = "true" ]; then  echo "可以进入"fi  

六、实战小例子:用户登录验证

结合多种运算符,写一个简单的验证脚本:

#!/bin/bashread -p "请输入用户名: " usernameread -p "请输入密码: " passwordif [ "$username" = "admin" ] && [ "$password" = "123456" ]; then  echo "登录成功!欢迎,$username"else  echo "用户名或密码错误!"fi  

七、总结

掌握Linux Shell运算符是学习Shell脚本编程的基础。通过合理使用条件判断运算符字符串比较运算符,你可以编写出功能强大、逻辑清晰的自动化脚本。建议多动手实践,尝试修改上述代码,加深理解。

提示:在编写脚本时,务必注意空格!例如 [ a = b ] 正确,而 [a=b] 会报错。