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

Linux Shell运算符详解(从零开始掌握Shell脚本中的运算与判断)

在编写 Linux Shell 脚本时,Shell 运算符是不可或缺的工具。它们用于执行数学计算、字符串比较、文件测试以及逻辑判断等操作。无论你是刚接触 Shell 脚本的新手,还是希望系统复习相关知识的开发者,本文都将带你一步步了解 Shell 中常用的各类运算符,并通过简单易懂的示例帮助你快速上手。

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

一、什么是 Shell 运算符?

Shell 运算符是在 Shell 脚本中用于执行特定操作的符号。它们可以分为以下几类:

  • 算术运算符(如 +-*
  • 关系运算符(如 -eq-gt
  • 字符串运算符(如 =!=
  • 文件测试运算符(如 -f-d
  • 逻辑运算符(如 &&||!

二、算术运算符

Shell 中进行数学计算通常使用 $((...))expr 命令。常见算术运算符包括:

运算符 说明
+ 加法
- 减法
* 乘法
/ 除法
% 取余

示例代码:

a=10b=3echo $((a + b))  # 输出 13echo $((a % b))  # 输出 1

三、关系运算符(用于数值比较)

if 条件判断中,我们常用关系运算符来比较两个整数。注意:这些运算符只能用于整数!

运算符 含义
-eq 等于(equal)
-ne 不等于(not equal)
-gt 大于(greater than)
-lt 小于(less than)
-ge 大于等于
-le 小于等于

示例代码:

num=15if [ $num -gt 10 ]; then  echo "数字大于10"fi

四、字符串运算符

用于比较字符串是否相等、是否为空等:

运算符 说明
= 字符串相等
!= 字符串不相等
-z 字符串长度为0(空)
-n 字符串长度不为0(非空)

示例代码:

str="hello"if [ -n "$str" ]; then  echo "字符串非空"fiif [ "$str" = "hello" ]; then  echo "匹配成功!"fi

五、文件测试运算符

这是 Shell 脚本中非常实用的功能,用于判断文件或目录的状态:

运算符 说明
-f 是普通文件
-d 是目录
-e 文件存在
-r / -w / -x 可读 / 可写 / 可执行

示例代码:

if [ -f "/etc/passwd" ]; then  echo "passwd 是一个普通文件"fiif [ -d "/home" ]; then  echo "/home 是一个目录"fi

六、逻辑运算符

用于组合多个条件判断,实现更复杂的控制逻辑:

运算符 说明
! 逻辑非(取反)
&& 逻辑与(两者都为真才成立)
|| 逻辑或(任一为真即成立)

示例代码:

age=20has_license=trueif [ $age -ge 18 ] && [ "$has_license" = "true" ]; then  echo "可以开车"fiif [ ! -f "test.txt" ]; then  echo "test.txt 不存在"fi

七、总结

掌握 Linux Shell 运算符是编写高效、健壮 Shell 脚本的基础。无论是做简单的自动化任务,还是复杂的系统管理脚本,这些运算符都能帮你轻松完成条件判断和逻辑控制。建议初学者多动手实践,结合 Shell 脚本教程 和实际项目加深理解。

记住几个关键点:

  • 数值比较用 -eq-gt 等,不要用 ==
  • 字符串比较用 =!=,且建议用双引号包裹变量;
  • 文件测试是 Shell 脚本的强项,善用 -f-d 等提升脚本健壮性;
  • 逻辑运算符 &&|| 可简化流程控制。

希望这篇关于 Shell 条件判断Shell 逻辑运算 的教程能为你打开 Shell 编程的大门!