当前位置: 首页 > 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}'

相关文章:

Bash 中的运算方式

目录 概述&#xff1a; 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc&#xff08;计算器&#xff0c;支持浮点数&#xff09; 6. awk&#xff08;强大的文本处理工具&#xff0c;也可计算&#xff09; 概述&#xff1a; Bash 本身只支持整数运算&am…...

2025年3月营销灵感日历

2025年的第一场营销大战已经拉开帷幕了&#xff01; 三月可是全年最值钱的营销黄金月——妇女节、植树节、315消费者日三大爆点连击&#xff0c;还有春分、睡眠日、世界诗歌日等20隐藏流量密码。 道叔连夜扒了18个行业数据&#xff0c;整理了这份《2025年3月营销灵感日历》&a…...

MySQL的innoDB引擎

一、逻辑存储结构 表空间:ibd文件,一个MySQL实例可以对应多个表空间,用于存储记录,索引等数据; 段:分为数据段(leaf node segment)、索引段(non-leaf node segment)、回滚段(rollback segment),innodb是索引组织表,数据段就是B+树的非叶子节点。段用来管理多个e…...

HCIA项目实践---OSPF的知识和原理总结

9.5 OSPF 9.5.1 从哪些角度评判一个动态路由协议的好坏&#xff1f; &#xff08;1&#xff09;选路佳&#xff08;是否会出环&#xff09; OSPF 协议采用链路状态算法&#xff0c;通过收集网络拓扑信息来计算最短路径&#xff0c;从根本上避免了路由环路的产生。 &#xff08…...

hexo 魔改 | 修改卡片透明度

hexo 魔改 | 修改卡片透明度 ** 博客食物用更佳 博客地址 ** 这是笔者自己瞎倒腾的。作为前端菜鸡一枚&#xff0c;大佬们随便看看就好~ 我用的主题是 butterfly 4.12.0 分析 通过开发者工具可以看出来卡片的背景和 --card-bg 变量有关 再在 sources 下的 css 文件夹下的…...

今日AI和商界事件(2025-02-13)

今日AI领域的主要事件包括&#xff1a; 一、OpenAI相关动态 取消独立发布o3模型计划&#xff1a; OpenAI首席执行官奥尔特曼宣布&#xff0c;公司取消独立发布o3模型的计划。未来几个月内&#xff0c;OpenAI将推出GPT-5&#xff0c;该模型将整合多项技术&#xff0c;并应用于C…...

38.日常算法

1.最短无序连续子数组 题目来源 给你一个整数数组 nums &#xff0c;你需要找出一个 连续子数组 &#xff0c;如果对这个子数组进行升序排序&#xff0c;那么整个数组都会变为升序排序。请你找出符合题意的 最短 子数组&#xff0c;并输出它的长度。 示例 1&#xff1a; 输入…...

如何构建有效的人工智能代理

目录 什么是 AI 代理? 何时应使用 AI 代理? 人工智能代理的构建模块 构建 AI 代理的常用方法 1. 提示链接(分步说明) 2.路由(将任务发送到正确的地方) 3.并行处理(同时做多件事) 4. 协调者和工作者 AI(团队合作) 5. 评估器和优化器(修复错误) 如何让人工…...

qt 事件的传递顺序

在 Qt 中&#xff0c;事件的传递顺序遵循以下基本规则&#xff1a; 事件的产生&#xff1a;当用户与界面交互时&#xff0c;操作&#xff08;如鼠标点击、键盘输入等&#xff09;会生成相应的事件&#xff08;如 QMouseEvent、QKeyEvent 等&#xff09;。 事件的传递顺序&…...

全面掌握Flutter开发:从核心原理到跨平台实战,构建高效应用

文章目录 引言 一、Flutter框架概述二、Flutter开发环境搭建三、Flutter核心技术解析1. **Widget树与状态管理**2. **路由与导航**3. **网络请求与数据解析**4. **本地存储与数据库**5. **包管理与依赖** 四、实战案例&#xff1a;开发跨平台新闻客户端五、Flutter开发工具与调…...

Flutter 添加 iOS widget 小组件

环境 macOS 15.1 Xcode16.1 Flutter 3.27.4 前言 本篇文章主要记录&#xff0c;在Flutter 项目中如何正确地添加iOS 小组件&#xff0c;iOS 小组件 相关的知识在另一篇文章有记录。 iOS 14 widget 添加小组件 WidgetExtension 打开Xcode New -> Target 选择 iOS -> 搜…...

2025年金三银四经典自动化测试面试题

概述 觉得自动化测试很难&#xff1f; 是的&#xff0c;它确实不简单。但是学会它&#xff0c;工资高啊&#xff01; 担心面试的时候被问到自动化测试&#xff1f; 嗯&#xff0c;你担心的没错&#xff01;确实会被经常问到&#xff01; 现在应聘软件测试工程师的岗位&…...

C++17 中 std::lcm:从入门到精通

文章目录 一、引言二、std::lcm 的基本概念三、入门示例四、计算多个整数的最小公倍数五、std::lcm 的实现原理六、在实际项目中的应用七、注意事项八、总结 一、引言 在 C 编程中&#xff0c;处理数学运算时&#xff0c;计算最小公倍数&#xff08;Least Common Multiple&…...

初阶c语言(循环语句习题,完结)

前言&#xff1a; c语言为b站鹏哥&#xff0c;嗯对应视频37集 昨天做的c语言&#xff0c;今天在来做一遍&#xff0c;发现做错了 今天改了平均值的计算&#xff0c; 就是说最大值加上最小值&#xff0c;如果说这个数值非常大的话&#xff0c;两个值加上会超过int类型的最大…...

本地Deepseek-r1:7b模型集成到Google网页中对话

本地Deepseek-r1:7b网页对话 基于上一篇本地部署的Deepseek-r1:7b&#xff0c;使用黑窗口对话不方便&#xff0c;现在将本地模型通过插件集成到Google浏览器中 安装Google插件 在Chrome应用商店中搜索page assis 直接添加至Chrome 修改一下语言 RAG设置本地运行的模型&#…...

SSM课设-学生选课系统

【课设者】SSM课设-学生选课系统 分为 管理员 和 老师 和 学生端 技术栈 前端: HtmlCssJavaScriptAjax 后端: Spring、Spring MVC、MyBatis、MySQL、JSP 学生端 --选课 选课 搜索 --查看选课结果 --退选 --查看已修课程 --管理个人信息 老师端 --添加教学课程 添加 …...

Windows中使用Docker安装Anythingllm,基于deepseek构建自己的本地知识库问答大模型,可局域网内多用户访问、离线运行

文章目录 Windows中使用Docker安装Anythingllm&#xff0c;基于deepseek构建自己的知识库问答大模型1. 安装 Docker Desktop2. 使用Docker拉取Anythingllm镜像2. 设置 STORAGE_LOCATION 路径3. 创建存储目录和 .env 文件.env 文件的作用关键配置项 4. 运行 Docker 命令docker r…...

AI前端开发技能提升与ScriptEcho:拥抱AI时代的前端开发新范式

随着人工智能技术的飞速发展&#xff0c;AI前端开发岗位对技能的要求也水涨船高。越来越多的企业需要具备AI相关知识和高级前端开发能力的工程师&#xff0c;这使得传统的前端开发模式面临着巨大的挑战。如何提升开发效率&#xff0c;降低人力成本&#xff0c;成为了摆在所有前…...

【Redis存在线程安全问题吗?】

Redis存在线程安全问题吗? Redis的线程安全性概述Redis线程安全性的挑战Redis线程安全性的示例示例1:客户端并发访问导致的问题示例2:分布式环境下的问题解决Redis线程安全问题的建议总结Redis的线程安全性概述 Redis本身是一个单线程的键值存储数据库,它使用单线程模型来…...

碎碎念,再聊HyperRAM(CrosslinkNX FPGA+HyperRAM)

作者&#xff1a;Hello&#xff0c;Panda HyperRAM其实熊猫君很久以前在用了&#xff0c;几年前也分享了一篇实现HyperRAM控制器的博文&#xff08;博文《Lattice CrossLinkNx LIFCL-40应用连载7-使用HyperRAM存储器》。近期在后台收到好几位朋友咨询一些关于HyperRAM的问题&a…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh&#xff1f; debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?

uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件&#xff0c;用于在原生应用中加载 HTML 页面&#xff1a; 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...