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

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 )); then
    echo "x 小于 y"
fi

2. let 命令

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

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

let x++
echo $x  # 输出 9

let 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.kler.cn/a/546610.html

相关文章:

  • 基于Spring Boot的视频点播系统设计与实现(LW+源码+讲解)
  • 智元机器人开源AgiBot World数据集:具身智能领域的“ImageNet时刻”
  • 计算机毕业设计——Springboot的社区维修平台
  • Unity下ML-Agents第一个示例
  • 【Android开发】安卓手机APP使用机器学习进行QR二维码识别(完整工程资料源码)
  • pgsql用户和权限管理
  • LLM论文笔记 6: Training Compute-Optimal Large Language Models
  • Unity使用反射进行Protobuf(CS/SC)协议,json格式
  • [隧道代理] 隧道代理 — 反弹 Shell - Bash 反弹 Shell
  • 「软件设计模式」建造者模式(Builder)
  • 深入浅出CSS复合选择器:掌控元素关系与层级选择
  • 冒泡排序的缺陷及优化
  • HtmlRAG:RAG系统中,HTML比纯文本效果更好
  • 面向 Data+AI 的新一代智能数仓平台
  • flutter doctor 报错—CocoaPods not installed
  • Java实现HTTPS双向认证的终极指南:从原理到实战
  • [创业之路-297]:经济周期与股市、行业的关系
  • Git 查看修改记录 二
  • 《安富莱嵌入式周报》第350期:Google开源Pebble智能手表,开源模块化机器人平台,开源万用表,支持10GHz HRTIM的单片机,开源CNC控制器
  • 京东 旋转验证码 分析