Bash 中的运算方式

news2025/2/19 17:06:47

目录

概述:

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.coloradmin.cn/o/2298938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超纯水设备的智能化控制系统为用户带来安全简便的操作体验

随着信息技术的发展&#xff0c;智能化已经成为工业装备的重要发展方向之一。超纯水设备在这方面也走在了前列&#xff0c;配备了高性能的PLC控制系统及人机交互界面&#xff0c;实现了全方位的智能监控和自动化操作。本文将重点介绍该设备的智能化控制系统&#xff0c;探讨它如…

性格测评小程序03搭建用户管理

目录 1 创建数据源2 搭建后台3 开通权限4 搭建启用禁用功能最终效果总结 性格测评小程序我们期望是用户先进行注册&#xff0c;注册之后使用测评功能。这样方便留存用户的联系信息&#xff0c;日后还可以推送对应的相关活动促进应用的活跃。实现这个功能我们要先创建数据源&…

Linux-C/C++《七、字符串处理》(字符串输入/输出、C 库中提供的字符串处理函数、正则表达式等)

字符串处理在几乎所有的编程语言中都是一个绕不开的话题&#xff0c;在一些高级语言当中&#xff0c;对字符串的处理支 持度更是完善&#xff0c;譬如 C、 C# 、 Python 等。若在 C 语言中想要对字符串进行相关的处理&#xff0c;譬如将两个字符串进行拼接、字符串查找、两个…

基于若依开发的工程项目管系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!

一、简介 今天给大家推荐一个基于 RuoYi-Flowable-Plus 框架二次开发的开源工程项目管理系统&#xff0c;专为工程项目的投标管理、项目进度控制、成本管理以及 OA 办公需求设计。 该项目结合了 Spring Boot、Mybatis、Vue 和 ElementUI 等技术栈&#xff0c;提供了丰富的功能…

uni-app 学习(一)

一、环境搭建和运行 &#xff08;一&#xff09;创建项目 直接进行创建 &#xff08;二&#xff09;项目结构理解 pages 是页面 静态资源 打包文件&#xff0c;看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…

【git-hub项目:YOLOs-CPP】本地实现03:跑自己的实例分割模型

本节博客,我们继续讲解,如何在cpu+windows上,跑通自己的实例分割模型。 目录 模型 类别名称 量化 导出模型 拉取最新代码 进入官网ultralytics 模型 该项目包括存储在 models 和 quantized_models 目录中的各种预训练标准 YOLO 模型: 模型类型模型名称标准模型yolo5…

OpenEuler学习笔记(三十):在OpenEuler上搭建3D建模环境

在OpenEuler上搭建3D建模环境&#xff0c;通常可以选择一些常见的3D建模软件&#xff0c;如Blender、FreeCAD等。以下以搭建Blender和FreeCAD这两款软件的使用环境为例&#xff0c;为你详细介绍搭建步骤。 搭建Blender 3D建模环境 1. 更新系统软件包 首先&#xff0c;确保系…

把 DeepSeek1.5b 部署在显卡小于4G的电脑上

这里写自定义目录标题 介绍准备安装 Ollama查看CUDA需要版本安装CudaToolkit检查Cuda是否装好设置Ollama环境变量验证是否跑在GPU上ollama如何导入本地下载的模型安装及配置docker安装open-webui启动open-webui开始对话 调整gpu精度 介绍 Deepseek1.5b能够运行在只用cpu和gpu内…

基于 Filebeat 的日志收集

在现代分布式系统中&#xff0c;日志数据作为关键的监控与故障排查依据&#xff0c;越来越受到重视。本文将深入探讨 Filebeat 的技术原理、配置方法及在 ELK&#xff08;Elasticsearch、Logstash、Kibana&#xff09;生态系统中的应用&#xff0c;帮助开发者构建高效、稳定的日…

Python教程108:针对面向对象Class类知识要点,源码示例再演示

类的基础结构&#xff0c;比如定义类、初始化方法__init__&#xff0c;然后实例化对象。然后是类的属性&#xff0c;包括实例属性和类属性。接着是方法&#xff0c;比如实例方法、类方法、静态方法的区别。还有继承和多态&#xff0c;这是面向对象的重要部分。可能还需要提到特…

如何在Excel和WPS中进行翻译

文档翻译我们可以用在线翻译工具&#xff0c;Excel工作表的翻译使用在线翻译工具就不是特别方便&#xff0c;那么如何快速进行翻译呢&#xff0c;我们今天介绍在不同的场景下如何利用翻译函数和Python程序来实现单元格的快速翻译。 一、在wps中进行翻译 WPS是我们常用的办公软…

DeepSeek从入门到精通:提示词设计的系统化指南

目录 引言&#xff1a;AIGC时代的核心竞争力 第一部分 基础篇&#xff1a;提示词的本质与核心结构 1.1 什么是提示词&#xff1f; 1.2 提示词的黄金三角结构 第二部分 类型篇&#xff1a;提示词的六大范式 2.1 提示语的本质特征 2.2 提示语的类型 2.2.1 指令型提示词 …

智能手表表带圆孔同心度检测

在智能手表的制造工艺中&#xff0c;表带圆孔同心度检测是确保产品品质的关键环节。精准的同心度不仅关乎表带与表体的完美适配&#xff0c;更直接影响用户的佩戴舒适度和产品的整体美观度。稍有偏差&#xff0c;就可能导致表带安装困难、佩戴时出现晃动&#xff0c;甚至影响智…

完美解决 error:0308010C:digital envelope routines::unsupported

查看专栏目录 Network 灰鸽宝典专栏主要关注服务器的配置&#xff0c;前后端开发环境的配置&#xff0c;编辑器的配置&#xff0c;网络服务的配置&#xff0c;网络命令的应用与配置&#xff0c;windows常见问题的解决等。 文章目录 windows电脑完美解决办法&#xff1a;设置说明…

MATLAB图像处理:Sobel、Roberts、Canny等边缘检测算子

边缘是图像中像素值剧烈变化的区域&#xff0c;反映了目标的轮廓、纹理等关键信息。边缘检测是图像分割、目标识别等任务的基础。本文将系统解析 六种经典边缘检测算子 的数学原理、实现方法及适用场景&#xff0c;并给出完整的MATLAB代码示例和对比分析。 1. 边缘检测基础 1…

【设计模式】02-理解常见设计模式-结构型模式

上一篇&#xff0c;我们介绍了设计模式-创建型模式的内容&#xff0c;并给出了相关代码示范。 这一篇我们接着介绍剩下的内容之一“结构型模式” 一、概述 结构型模式主要用于处理类或对象的组合&#xff0c;以获得新的功能或实现更灵活的结构。 二、常见的结构型模式 1、适…

LabVIEW太阳能制冷监控系统

在全球能源需求日益增长的背景下&#xff0c;太阳能作为一种无限再生能源&#xff0c;被广泛应用于各种能源系统中。本基于LabVIEW软件和STM32F105控制器的太阳能制冷监控系统的设计与实现&#xff0c;提供一个高效、经济的太阳能利用方案&#xff0c;以应对能源消耗的挑战。 项…

MambaMorph brain MR-CT

loss代码实现了几种用于医学图像配准(Registration)和分割(Segmentation)任务的损失函数,主要包括以下几种: NCC (Normalized Cross-Correlation): 功能: 计算局部归一化互相关损失,用于衡量两个图像之间的相似性。 应用场景: 通常用于图像配准任务,通过最大化图像之间…

单片机原理与运用

个人主页&#xff1a;java之路-CSDN博客(期待您的关注) 目录 一、走进单片机的世界 二、单片机是什么 &#xff08;一&#xff09;定义与本质 &#xff08;二&#xff09;与普通计算机的区别 三、单片机的工作原理深度剖析 &#xff08;一&#xff09;硬件组成及功能 &am…

一个根据输入内容过滤下拉选的组件

1.element的select自定义过滤不是很灵&#xff0c;使用了input和dropdown 组件 <template><div class"autocomplete-wrapper"><!-- 使用 el-input 组件 --><el-inputv-model"inputValue"input"handleInput"placeholder&q…