当前位置: 首页 > news >正文

Shell——运算符

在 Shell 编程中,运算符用于执行各种类型的操作,如算术运算、字符串比较、文件测试等。以下是 Shell 中常用的运算符分类和示例:

1. 算术运算符

Shell 中使用 expr$(( ... )) 来进行算术运算。

  • +: 加法
  • -: 减法
  • *: 乘法
  • /: 除法
  • %: 取余
  • **: 幂运算(在 bash 中支持)
  • ++: 自增(用于变量)
  • --: 自减(用于变量)
示例:
#!/bin/bash# 定义两个变量
a=10
b=20# 算术运算
sum=$((a + b))
difference=$((a - b))
product=$((a * b))
quotient=$((b / a))
remainder=$((b % a))
power=$((a ** 2))echo "Sum: $sum"
echo "Difference: $difference"
echo "Product: $product"
echo "Quotient: $quotient"
echo "Remainder: $remainder"
echo "Power: $power"

2. 关系运算符

关系运算符用于比较两个数字。返回的结果是布尔值(0 为 true,非 0 为 false)。

  • -eq: 等于
  • -ne: 不等于
  • -gt: 大于
  • -lt: 小于
  • -ge: 大于等于
  • -le: 小于等于
示例:
#!/bin/basha=10
b=20if [ $a -eq $b ]; thenecho "a is equal to b"
elseecho "a is not equal to b"
fiif [ $a -lt $b ]; thenecho "a is less than b"
fi

3. 逻辑运算符

逻辑运算符用于布尔逻辑操作。

  • &&: 逻辑与(AND)
  • ||: 逻辑或(OR)
  • !: 逻辑非(NOT)
示例:
#!/bin/basha=10
b=20if [ $a -lt $b ] && [ $a -gt 5 ]; thenecho "a is less than b and greater than 5"
fiif [ $a -gt $b ] || [ $a -lt $b ]; thenecho "Either a is greater than b or less than b"
fi

5. 文件测试运算符

文件测试运算符用于检查文件的某些属性。

  • -e: 文件存在
  • -f: 是普通文件
  • -d: 是目录
  • -r: 文件可读
  • -w: 文件可写
  • -x: 文件可执行
  • -s: 文件大小非 0
示例:
#!/bin/bashfile="example.txt"if [ -e "$file" ]; thenecho "$file exists"
fiif [ -d "$file" ]; thenecho "$file is a directory"
elseecho "$file is not a directory"
fiif [ -r "$file" ]; thenecho "$file is readable"
fi

6. 条件运算符(三元运算符)

Shell 中没有直接的三元运算符,但可以使用 if-else 结构或利用 &&|| 运算符来模拟。

示例:
#!/bin/basha=10
b=20# 使用 && 和 || 模拟三元运算符
[ $a -gt $b ] && echo "a is greater than b" || echo "a is not greater than b"

http://www.lryc.cn/news/426634.html

相关文章:

  • SweetAlert2
  • c语言中比较特殊的输入函数
  • Java版自动化测试之Selenium
  • 【计算机网络】——计算机网络的性能指标
  • MongoDB数据类型介绍
  • 【SpringBoot】SpringBoot 中 Bean 管理和拦截器的使用
  • Spring IoCDI(中)--IoC的进步
  • 读软件开发安全之道:概念、设计与实施02经典原则
  • MySQL中处理JSON数据:大数据分析的新方向,详解与示例
  • 【图形学】TA之路-矩阵
  • LAMM: Label Alignment for Multi-Modal Prompt Learning
  • mac编译opencv 通用架构库的记录
  • Python 向IP地址发送字符串
  • 上升响应式Web设计:纯HTML和CSS的实现技巧-1
  • 利用java结合python实现gis在线绘图,主要技术java+python+matlab+idw+Kriging
  • Android全面解析之context机制(三): 从源码角度分析context创建流程(下)
  • 执行docker compose命令出现 Additional property include is not allowed
  • STM32通过I2C硬件读写MPU6050
  • ubuntu2204-中文输入法-pycharm-python-django开发环境搭建
  • 【学习笔记】Matlab和python双语言的学习(一元线性回归)
  • LeetCode //C - 316. Remove Duplicate Letters
  • 【ARM+Codesys 客户案例 】RK3568/A40i/STM32+CODESYS在工厂自动化中的应用:PCB板焊接机
  • 【二分查找】--- 初阶题目赏析
  • 【PostgreSQL003】PostgreSQL数据表空间膨胀,磁盘爆满,应用宕机(经验总结,已更新)
  • C语言第20天笔记
  • 为什么穷大方
  • HiveSQL实战——大数据开发面试高频SQL题
  • RabbitMQ集群 - 普通集群搭建、宕机情况
  • xssDOM型练习
  • python中的gradio使用麦克风时报错