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

Bash 中的运算方式

目录

概述:

1. (()) 运算符

2. let 命令

3. expr 命令

4. $[] 直接运算

5. bc(计算器,支持浮点数)

6. awk(强大的文本处理工具,也可计算)


概述:

Bash 本身只支持整数运算,但可以结合 bcawk 进行浮点运算。以下是常见的计算方法:

1. (()) 运算符

(()) 是 Bash 的整数计算语法,支持算术运算符、逻辑运算符,并且可以直接操作变量。

echo $((2 + 3))   # 输出 5
echo $((10 / 3))  # 输出 3(整数运算,舍弃小数部分)# 变量运算
x=5
y=10
echo $((x + y))   # 输出 15#逻辑运算
x=5
y=10
if (( x < y )); thenecho "x 小于 y"
fi

2. let 命令

let 命令和 (( )) 类似,适用于整数计算,但需要显式声明变量

let x=5+3
echo $x  # 输出 8let x++
echo $x  # 输出 9let x+=2
echo $x  # 输出 11

3. expr 命令

expr 也是用于整数运算的命令,注意运算符和操作数之间要有空格

expr 2 + 2      # 输出 4
expr 10 / 2     # 输出 5
expr 5 \* 2     # 输出 10 (乘号 `*` 需要转义)

expr 结合变量:

i=5
i=`expr $i + 6`
echo $i  # 输出 11

4. $[] 直接运算

作用$[]$(( )) 类似,但更旧,一般推荐用 (( ))

x=10
y=$[x + 2]
echo $y  # 输出 12

5. bc(计算器,支持浮点数)

Bash 本身不支持浮点运算,但可以借助 bc 进行计算。

交互式计算:键入bc

$ bc
bc 1.06
5 + 3
8
scale=2
10/3
3.33
quit

非交互式结合变量:

scalebc 计算器中用于控制小数点后的精度,即保留多少位小数。默认情况下,bc 只进行整数运算,如果不指定 scale,除法运算的结果将不会包含小数部分。

x=5
y=2
result=$(echo "scale=3; $x / $y" | bc)
echo $result  # 输出 2.500

6. awk(强大的文本处理工具,也可计算)

awk 也可以进行浮点运算

echo | awk '{print 10 / 3}'  # 输出 3.33333#结合变量
x=10
y=3
echo | awk -v x="$x" -v y="$y" '{print x / y}'

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

相关文章:

  • 2025年3月营销灵感日历
  • MySQL的innoDB引擎
  • HCIA项目实践---OSPF的知识和原理总结
  • hexo 魔改 | 修改卡片透明度
  • 今日AI和商界事件(2025-02-13)
  • 38.日常算法
  • 如何构建有效的人工智能代理
  • qt 事件的传递顺序
  • 全面掌握Flutter开发:从核心原理到跨平台实战,构建高效应用
  • Flutter 添加 iOS widget 小组件
  • 2025年金三银四经典自动化测试面试题
  • C++17 中 std::lcm:从入门到精通
  • 初阶c语言(循环语句习题,完结)
  • 本地Deepseek-r1:7b模型集成到Google网页中对话
  • SSM课设-学生选课系统
  • Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行
  • AI前端开发技能提升与ScriptEcho:拥抱AI时代的前端开发新范式
  • 【Redis存在线程安全问题吗?】
  • 碎碎念,再聊HyperRAM(CrosslinkNX FPGA+HyperRAM)
  • 左移架构 -- 从攒批,湖仓到使用数据流的实时数据产品
  • 多模态识别和自然语言处理有什么区别
  • 进阶——第十六蓝桥杯嵌入式熟练度练习(串口的小BUG补充-字符接受不完整和字符接受错误)
  • 数据结构-链式二叉树
  • 【git-hub项目:YOLOs-CPP】本地实现01:项目构建
  • 250213-RHEL8.8-外接SSD固态硬盘
  • 如何本地部署DeepSeek?
  • leetcode:627. 变更性别(SQL解法)
  • 51单片机(国信长天)矩阵键盘的基本操作
  • 封装一个sqlite3动态库
  • Transformer以及BERT阅读参考博文