shell算术运算符

文章目录

      • 算术运算符:
      • 算术运算扩展
      • 算术运算指令expr
      • 算术运算指令let
      • 自增自减运算符

算术运算符:

+	加法
-	减法
*	乘法
/	除法
%	取余
**	幂运算

算术运算扩展

算术运算扩展的运算数只能是整数


[root@localhost tmp]# num1=$[4+1]
[root@localhost tmp]# echo $num1

在这里插入图片描述
表达式为:5*2-3

echo num1=$(($num1*2-3))

在这里插入图片描述

 echo $((num2=2+3**2-1001%5))

在这里插入图片描述

[root@localhost tmp]# a=3;b=6;c=15
[root@localhost tmp]# echo $((a+b*c))

在这里插入图片描述
比对

[root@localhost tmp]# echo $(($a+$b*$c))
93

在这里插入图片描述

总结:
echo $((a+b*c)) 与 echo ( ( (( ((a+ b ∗ b* bc))结果一致,括号内变量的$可以省略;
用(())可以重定义变量值

算术运算指令expr

"expr"通常用于指代Unix和Linux操作系统中的一个命令或实用程序。它通常用于计算和显示算术表达式的值或执行其他字符串操作。


[root@localhost tmp]# expr 5 % 3
2
[root@localhost tmp]# expr 5 \* 3
15
[root@localhost tmp]# expr 2 + 5 \* 2 - 3 % 2
11
[root@localhost tmp]# expr \( 2 + 5 \)  \*  2 - 6
8

如有乘号必须被转义
如有括号,括号必须被转义
表达式中参数与操作符必须空格分开,不然就会报错(如下图)

在这里插入图片描述

算术运算指令let

let是bash内部命令,也是计算表达式的指令。

[root@localhost tmp]# echo ${num3=1}

在这里插入图片描述

[root@localhost tmp]# num2=$((4 + 1)); echo $num2

在这里插入图片描述

自增自减运算符

自增自减操作元只能是变量

var++	自增	
var--	自减
#!/bin/bash# 自增变量x的值
x=5
((x++)) # 或者 x=$((x + 1))
echo $x # 输出 6
# 自减变量y的值
y=10
((y--)) # 或者 y=$((y - 1))
echo $y # 输出 9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/166283.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[人工智能-综述-15]:第九届全球软件大会(南京)有感 -4-大语言模型全流程、全方面提升软件生产效能

目录 一、软件生产通用模型 1.1 企业软件生产模型 1.2 软件项目管理 VS 软件工程 1.3 企业管理与部门管理 二、第一步:企业数字化:企业信息系统 三、第二步:软件生产自动化:DevOps 四、第四步:软件生产智能化&a…

【Spring Cloud】如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本

文章目录 1. 版本选择2. 用脚手架快速生成微服务的pom.xml3. 创建一个父工程4. 代码地址 本文描述如何确定微服务项目的Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本。 1. 版本选择 我们知道Spring Boot、Spring Cloud、Spring Cloud Alibaba的版本选择一致性非常重…

CUDA学习笔记(二)CUDA简介

本篇博文转载于https://www.cnblogs.com/1024incn/tag/CUDA/,仅用于学习。 CUDA是并行计算的平台和类C编程模型,我们能很容易的实现并行算法,就像写C代码一样。只要配备的NVIDIA GPU,就可以在许多设备上运行你的并行程序&#xf…

Linux中的shell编程

shell编程 重定向 cat >temp 输入内容到temp文件中,如果存在temp则覆盖,没有则新建 cat >>temp 追加内容 cat temp1>>temp2 将temp1中的内容追加到temp 命令执行控制符号 ; 一个命令行执行多条语句 命令替换符 1.双引号&#…

Node学习笔记之path模块

path 模块提供了 操作路径 的功能,我们将介绍如下几个较为常用的几个 API: API 说明 path.resolve 拼接规范的绝对路径常用 path.sep 获取操作系统的路径分隔符 path.parse 解析路径并返回对象 path.basename 获取路径的基础名称 path.dirname…

C#接口和继承的区别、联系与使用场景

在C#编程语言中,接口和继承是两个核心的概念。本文将详细介绍接口和继承之间的区别与联系,并探讨它们在实际编程中的使用场景。通过代码示例和详细说明,读者将能够深入理解这两个概念的功能和用法。 目录 引言1. 区别与联系1.1 区别1.2 联系 …

pytorch,tf维度理解RNN

input_t input_t.squeeze(1) 这行代码用于从 input_t 中去除尺寸为1的维度。在深度学习中,经常会出现具有额外尺寸为1的维度,这些维度通常是为了匹配模型的期望输入维度而添加的。 在这里,input_t可能具有形状 (batch_size, 1, feature_dim…

HTML+CSS+JS+Django 实现前后端分离的科学计算器、利率计算器

🧮前后端分离计算器 📚git仓库链接和代码规范链接💼PSP表格🎇成品展示🏆🏆科学计算器:1. 默认界面与页面切换2. 四则运算、取余、括号3. 清零Clear 回退Back4. 错误提示 Error5. 读取历史记录Hi…

基于SSM的文化培训学校网站的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【LeetCode】145. 二叉树的后序遍历 [ 左子树 右子树 根结点]

题目链接 文章目录 Python3方法一: 递归 ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法二: 迭代 ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法三: Morris ⟮ O ( n ) 、 O ( 1 ) ⟯ \lgroup O(n)、O(1) \rgroup ⟮O(n)、O(1)⟯写…

[SQL | MyBatis] MyBatis 简介

目录 一、MyBatis 简介 1、MyBatis 简介 2、工作流程 二、入门案例 1、准备工作 2、示例 三、Mapper 代理开发 1、问题简介 2、工作流程 3、注意事项 4、测试 四、核心配置文件 mybatis-config.xml 1、environment 2、typeAilases 五、基于 xml 的查询操作 1、…

Flutter之Widget生命周期

目录 初始化构造函数initStatedidChangeDependencies 运行时builddidUpdateWidget 组件移除deactivatedisposereassemble 函数生命周期说明:实际场景App生命周期 前言:生命周期是一个组件加载到卸载的整个周期,熟悉生命周期可以让我们在合适的…

嵌入式养成计划-46----QT--简易版网络聊天室实现

一百一十九、简易版网络聊天室实现 119.1 QT实现连接TCP协议 119.1.1 基于TCP的通信流程 119.1.2 QT中实现服务器过程 使用QTcpServer实例化一个服务器对象设置监听状态,通过listen()函数,可以监听特定的主机,也可以监听所有客户端&#x…

Cannot load from short array because “sun.awt.FontConfiguration.head“ is null

错误描述 在使用Easyexcel时发生了报错,请求返回空白 但是只在Linux上出现了该报错,在本地windows环境没有出现 JDK都使用的是17版本 错误原因 由于在linux上缺失Easyexcel使用的字体导致 解决办法 下载一个jdk1.8 在其jre/lib目录里复制fontconfi…

VTK8.0.0编译+QT5.9.2+VS2017

背景 VTK网上资料较多并且使用较多的版本可能是VTK8.2.0,但是由于之前先配置了QT 5.9.2 msvc2017 PCL1.8.1 VTK8.0.0环境,听说有人PCL1.8.1配置VTK8.2.0实测版本不兼容,需修改源码调试,比较麻烦,所以之前就使用的VT…

Ultralytics YOLOv8的关键特点

计算机视觉领域正在迅速增长,其中最重要的技术之一是目标检测。每六个月都会出现新的目标检测算法,不断提高准确性,与之前的算法相比。Ultralytics YOLOv8是最先进的目标检测算法,不仅提供卓越的准确性,还支持CPU和GPU…

微信小程序连接数据库与WXS的使用

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯&#x1f3a…

google登录k8s dashboard ui显示“您的连接不是私密连接”问题解决梳理

1.问题描述 OS Version:CentOS Linux release 7.9.2009 (Core) K8S Version:Kubernetes v1.20.4 k8s dashboard ui安装完毕后,通过google浏览器登录返现https网页,发现非官方的https网页无法打开 网址:https://192.168.10.236:31001 2.原…

C++之struct匿名结构体实例(二百四十四)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

互联网Java工程师面试题·Java 面试篇·第二弹

目录 15、什么是不可变对象(immutable object)?Java 中怎么创建一个不可变对象? 16、我们能创建一个包含可变对象的不可变对象吗? 17、Java 中应该使用什么数据类型来代表价格? 18、怎么将 byte 转换为 Str…