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

V5主机测评

在编写 Linux Shell 脚本时,Shell 运算符是控制程序流程、实现逻辑判断和数值计算的核心工具。无论你是刚接触 Linux 的小白,还是有一定经验的开发者,掌握这些运算符都能让你的脚本更智能、更高效。

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

一、什么是 Shell 运算符?

Shell 运算符用于对变量、字符串、数字等进行比较、计算或逻辑判断。常见的 Shell 运算符包括:

  • 算术运算符:如 +、-、*、/
  • 关系运算符:如 -eq(等于)、-ne(不等于)、-gt(大于)等
  • 字符串运算符:如 =(相等)、!=(不相等)、-z(空字符串)
  • 逻辑运算符:如 &&(与)、||(或)、!(非)
  • 文件测试运算符:如 -f(是否为普通文件)、-d(是否为目录)

二、常用 Shell 运算符详解

1. 算术运算符

在 Shell 中,不能直接用 a + b 进行加法,而要使用 $(( ))expr 命令。

# 使用 $(( )) 进行算术运算a=10b=5echo $(( a + b ))   # 输出 15echo $(( a * b ))   # 输出 50# 使用 expr(注意空格!)echo $(expr $a + $b)  # 输出 15

2. 关系运算符(用于整数比较)

这些运算符通常用在 if 语句中,必须放在方括号 [ ] 或双括号 [[ ]] 内。

运算符 含义
-eq 等于(equal)
-ne 不等于(not equal)
-gt 大于(greater than)
-lt 小于(less than)
-ge 大于等于
-le 小于等于
num=20if [ $num -gt 10 ]; then  echo "数字大于10"fi

3. 字符串运算符

str1="hello"str2="world"if [ "$str1" = "$str2" ]; then  echo "字符串相等"else  echo "字符串不相等"fi# 判断字符串是否为空if [ -z "$str1" ]; then  echo "str1 是空字符串"else  echo "str1 不为空"fi

4. 逻辑运算符

用于组合多个条件:

  • &&:逻辑“与”,两个条件都为真才成立
  • ||:逻辑“或”,任一条件为真即成立
  • !:逻辑“非”,取反
age=25has_license=trueif [ $age -ge 18 ] && [ "$has_license" = "true" ]; then  echo "可以开车"fi

5. 文件测试运算符

常用于判断文件是否存在、是否可读等:

filename="/etc/passwd"if [ -f "$filename" ]; then  echo "$filename 是一个普通文件"fiif [ -r "$filename" ]; then  echo "$filename 可读"fi

三、实战小例子

下面是一个完整的脚本,综合使用了多种 Shell 条件判断Shell 逻辑运算

#!/bin/bashread -p "请输入你的年龄: " ageif [ $age -lt 0 ]; then  echo "年龄不能为负数!"elif [ $age -lt 18 ]; then  echo "你还未成年。"elif [ $age -ge 18 ] && [ $age -le 60 ]; then  echo "你是成年人,正值壮年!"else  echo "你已进入老年阶段,注意健康!"fi

四、总结

掌握 Linux Shell 运算符 是学习 Shell 脚本编程 的基础。通过合理使用这些运算符,你可以编写出功能强大、逻辑清晰的自动化脚本。记住以下几点:

  • 整数比较用 -eq-gt 等,不要用 ==
  • 字符串比较用 =!=
  • 方括号 [ ] 两边要有空格!
  • 使用双引号包裹变量,防止空值错误

现在,你已经具备了使用 Shell 运算符的基本能力。快去写一个属于你自己的脚本吧!

文章版权声明:除非注明,否则均为V5主机测评网_性价比VPS_性价比云服务器_免费独立服务器原创文章,转载或复制请以超链接形式并注明出处。