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

Linux Shell运算符(从零开始掌握命令行中的数学与逻辑运算)

在 Linux 系统中,Shell 不仅是一个命令解释器,更是一个功能强大的脚本编程环境。对于初学者来说,掌握 Linux Shell运算符 是编写高效自动化脚本的第一步。本文将带你从零开始,一步步了解 Shell 中的各类运算符,并通过实例让你轻松上手。

什么是 Shell 运算符?

Shell 运算符用于执行各种计算和比较操作,比如加减乘除、字符串比较、文件判断等。它们广泛应用于条件判断(if)、循环(while/for)以及变量赋值等场景。

Linux Shell运算符(从零开始掌握命令行中的数学与逻辑运算) Shell运算符 Shell脚本编程 命令行运算 Linux系统操作 第1张

Shell 中的五大类运算符

1. 算术运算符

用于基本的数学计算。在 Bash 中,通常使用 $((...))expr 命令进行算术运算。

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

2. 关系运算符(比较运算符)

用于比较两个数值或字符串的大小关系,常用于 if 语句中。

  • -eq:等于(数值)
  • -ne:不等于(数值)
  • -gt:大于
  • -lt:小于
  • ===:字符串相等
  • !=:字符串不等
if [ $a -gt $b ]; then  echo "a 大于 b"fi

3. 布尔运算符

用于逻辑组合多个条件:

  • ! expr:逻辑非
  • expr1 -a expr2:逻辑与(and)
  • expr1 -o expr2:逻辑或(or)

注意:现代 Bash 更推荐使用 &&||[[ ]] 中使用。

4. 字符串运算符

专门用于处理字符串:

  • -z string:判断字符串是否为空(长度为0)
  • -n string:判断字符串是否非空
str=""if [ -z "$str" ]; then  echo "字符串为空"fi

5. 文件测试运算符

这是 Shell 特有的强大功能,用于检测文件属性:

  • -f file:是否为普通文件
  • -d file:是否为目录
  • -r file:是否可读
  • -w file:是否可写
  • -x file:是否可执行
if [ -f /etc/passwd ]; then  echo "passwd 是一个普通文件"fi

实战小例子:自动备份脚本

结合多种运算符,我们可以写一个简单的备份脚本:

#!/bin/bashBACKUP_DIR="/backup"SOURCE="/home/user/docs"# 检查备份目录是否存在if [ ! -d "$BACKUP_DIR" ]; then  mkdir -p "$BACKUP_DIR"fi# 检查源目录是否存在且非空if [ -d "$SOURCE" ] && [ -n "$(ls -A $SOURCE)" ]; then  tar -czf "$BACKUP_DIR/backup_$(date +%Y%m%d).tar.gz" "$SOURCE"  echo "备份完成!"else  echo "源目录不存在或为空,跳过备份。"fi

总结

掌握 Linux Shell运算符 是学习 Shell脚本编程 的基础。通过合理使用算术、关系、布尔、字符串和文件测试运算符,你可以编写出功能强大且灵活的自动化脚本。无论你是系统管理员还是开发者,这些知识都能极大提升你的 Linux系统操作 效率。

记住:多练习、多尝试,是掌握 命令行运算 的最佳途径。现在就打开终端,动手试试吧!