shell算数运算 let 和 expr

shell中计算命令详解(expr、(())、 $[]、let、bc ) 双小括号(()),用于进行数学运算表达式的执行,将数学运算表达式放在((和))之间。可以使用$获取(())表达式命令的结果,这和使用$获得变量值是一样的。let赋值最方便(())直接求值输出最方便,且支持多表达式同时运算expr优点可以直接输出缺点计算表达式里面引用变量使用$,特殊字符需要转义只能计算一个表达式(())优点直接输出,里面直接使用变量名,特殊字符不需要转义,多个表达式赋值,可进行多表达式同时i计算,使用”,“互相分开缺点。...... 阅读详情

整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let"x = $x + 1" 或者 x=`expr $x +1‘,个人感觉,二者差不多,前者表达比较简单,择优用之

 在bash中,let可以用来做数值运算
bash-2.05b$ export n=20
bash-2.05b$ n=n+1
bash-2.05b$ echo $n
n+1
n+1并没有按照数字处理,而是安装字符串串连处理
这时候如果想实现n按照数值进行相加,则就需要let出手了
bash-2.05b$ export n=20
bash-2.05b$ let n+=1
bash-2.05b$ echo $n

21

let 例子如下:

#!/bin/bash
n=20
#let n+=1
let n=n+1
echo "n = $n"
expr 例子如下:

#!/bin/bash
n=20
n=`expr $n + 1`
echo "n = $n"
这里空格很费解, let中运算符与操作数不能有空格, expr中 运算符与操作数必须有空格,真是麻烦。

在Bash Shell中,只能进行两个整数间的运算,其结果仍为整数.要进行算术
运算,需要使用let命令,语法为:
let expr
expr是一个包含项和操作符的表达式,项可以是一个变量或是一个整数常数,
当使用整数常数时,其默认为十进制整数,用户可以用radio#number来指定其它
形式的整数,其中radio定义了整数是几进制表示的,number是该整数的值.若
radio>10,那么数字字符可从0-9和A-Z.
在表达式中支持的操作符及其含义为:
+,-,*,/,% 加,减,乘,除,取模
>>,<<,&,^,|左移,右移,位与,位异或,位或
?: 三元运算符.与C语言中的定义一致
~ 取补码
!,>=,<=,>,<,==,!=,&&,||
=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
表达式式中也可以使用括号.括号或运算优先级的定义与一般计算机语言中的
相同.
let命令具有返回值.当计算结果(若有多个表达式时,以最后一个为准)为0时,
返回值为1,否则为0.
当表达式中含有shell的特殊字符(如|)时,需要用引用符('或")将其引用起来.
使用let时还需要注意的时,对于let x+y这样的式子,shell虽然计算了x+y的值
但却将结果丢弃,若不想这样,可以使用let sum=x+y将x+y的结果保存在变量sum中
另外还可以使用((和))操作符取代let命令,而且这样的话,还可以省去对算术
表达式的引用,如果想返回表达式的值,则需用$(())的格式.

if的条件中,“=”用于比较字符串;“-eq”用于比较整型数。


Bash shell 的算术运算有四种方式:
1:使用 expr 外部程式

加法 r=`expr 4 + 5`
echo $r
注意! '4' '+' '5' 这三者之间要有空白
r=`expr 4 * 5` #错误
乘法 r=`expr 4 \* 5`

2:使用 $(( ))
r=$(( 4 + 5 ))
echo $r

3:使用 $[ ]

r=$[ 4 + 5 ]
echo $r

乘法
r=`expr 4 \* 5`
r=$(( 4 * 5 ))
r=$[ 4 * 5 ]
echo $r

除法
r=`expr 40 / 5`
r=$(( 40 / 5 ))
r=$[ 40 / 5 ]
echo $r

减法
r=`expr 40 - 5`
r=$(( 40 - 5 ))
r=$[ 40 - 5 ]
echo $r

求余数
r=$[ 100 % 43 ]
echo $r

乘幂 (如 2 的 3 次方)
r=$(( 2 ** 3 ))
r=$[ 2 ** 3 ]
echo $r
注:expr 沒有乘幂

4:使用let 命令
加法:
n=10
let n=n+1
echo $n #n=11

乘法:
let m=n*10
echo $m

除法:
let r=m/10
echo $r


求余数:
let r=m%7
echo $r


乘冪:
let r=m**2
echo $r

虽然Bash shell 有四种算术运算方法,但并不是每一种都是跨平台的,建议使用expr。
另外,我们在 script 中经常有加1操作,以下四法皆可:
m=$[ m + 1]
m=`expr $m + 1`
m=$(($m + 1))
let m=m+1


【Python_PySide6学习笔记(二十四)】菜单栏QMenuBar类的基本用法 此篇文章中介绍 PySide6 中 QMenuBar 类的基本用法,包括"创建菜单栏"、"创建一级菜单"、"创建二级菜单"等,会持续更新,有需要的读者可以点赞收藏,也欢迎在评论区进行讨论。 阅读详情

相关推荐

硬件单板类机考复习提纲

6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)

2303_79562407的博客 1万+

shell bash let 加减乘除/自增/自减

let 属于 bash builtin command,是一个内置命令,在 bash 中用于计算的工具,用于执行一个或多个表达式,支持的操作符比较丰富,比如前置/后置自增/自减操作符( n++, n–, ++n ,–n),加/减/乘/除/求余等等。...

小单的博客专栏 1830

用LightRAG+Ollama搭建本地知识库:从文档上传到智能问答的完整流程

本文详细介绍了如何利用LightRAG与Ollama构建企业级本地知识库,涵盖从文档预处理到智能问答的完整流程。通过实战案例展示,该方案能高效处理海量文档,实现语义搜索与知识图谱关联分析,显著提升信息检索效率。特别适合金融、医疗等领域的技术团队快速搭建智能知识管理系统。

weixin_42535461的博客 209

bash:加减乘除(bc、let)

bc *、 echo "$2 * $2" | bc &gt; file  let 如果只是 let a=1 和 a=1,它们没有区别,但是 let 还可以用于带赋值的运算,例如 let a=1+5 echo $a 得到计算结果 6,而 a=1+5 echo $a 得到一个字符串 1+5, let a=1+5 echo $a 得到计算结果 6,而 a=1+5 echo $a...

daduryi的博客 1112

Cursor Cloud Agent:云原生编程工作流的底层重构

编程工作流正从本地计算范式转向云原生执行范式。Cloud Agent 本质是将代码理解、生成、执行与调试等核心能力下沉至隔离、可控、按需分配的云端虚拟机,通过 Firecracker 微虚拟机实现亚秒级启动,并依托上下文快照、环境镜像化和内核级沙箱保障一致性、算力弹性与数据安全。这一范式突破了传统本地 AI 编程助手在环境依赖、调试能力与企业合规上的根本局限,使 IDE 从编辑工具升维为分布式开发指挥中心。本文深入解析其运行机制与工程落地实践。

weixin_34354173的博客 337

自动驾驶仿真(五)—— 基于Carsim、Prescan、Simulink的联合仿真

自动驾驶仿真五——基于Carsim、Prescan、Simulink的联合仿真1. 联合仿真流程2. CarSim联合仿真配置要点3. Prescan联合仿真配置要点4. Carsim、Prescan、Simulink联合仿真结果5. 参考学习的书目教材 博主前面的博文已经介绍了Carsim和Prescan各自与Matlab/Simulink的相关联合仿真应用实例,并且论述过几款软件各自的优势及用法,CarSim适合动力学模型的建立,PreScan适合行车场景的搭建,Simulink适合控制算法的设计及信号

zhudj08的博客 1万+

Bash Shell let命令

http://blog.sina.com.cn/s/blog_5ac88b350100arnv.html 整数运算一般通过 let 和 expr 这两个指令来实现,如对变量 x 加 1 可以写作:let "x = $x + 1" 或者 x=`expr $x + 1‘,个人感觉,二者差不多,前者表达比较简单,择优用之   在bash中,let可以用来做数值运算 bash-2.05b$ e

bytxl的专栏 1633

Python实战:3步搞定视频去重,告别重复文件烦恼(附完整代码)

本文提供了一套基于Python的视频去重实战方案,通过三步流程(抽帧、生成内容指纹、相似度比对)高效识别重复视频文件。文章详细介绍了使用dHash算法生成视频指纹的核心原理,并提供了完整的代码实现,帮助用户快速构建自己的视频去重工具,告别重复文件管理烦恼。

weixin_29054245的博客 382

Linux指令--let

【linux运算指令】Linux指令--let。

llg___的博客 2036

mediasoup源码分析(二十)服务端架构设计

目录 简介 信令服务(房间服务) 调度服务 媒体服务 简介 流媒体服务器大的方向上可以分为上述三个模块。目前行业内都是分布式服务,独立部署。mediasoup信令与媒体之间虽然可以管道通信。但在行业内,服务之间通过管道通信用的少。 一般是rpc、mq,或者传统的tcp。这块licode架构比较不错,licode是信令和媒体服务通过MQ消息队列解耦。 下面介绍一下这三个服务主要功能,当然文中所说也是一家之言。 信令服务(房间服务) 信令服务也称为房间服务。有的企业把信令和房间分开,信..

lcalqf的专栏 1545

EMD (经验模态分解) 在 C++ 中的实现指南

EMD 是由 Norden E. Huang 等人在1998年提出的一种适用于非线性和非平稳信号的分析方法。对称性:IMF 的上下包络对称。零交叉点:IMF 的零交叉点数量与极值点数量相同或相差一个。本文详细介绍了如何在C++中实现EMD,包括理论背景、算法步骤、代码实现和优化等内容。通过丰富的代码示例和详细的解释,希望能够帮助读者掌握EMD的基本原理,并能够在实际项目中灵活应用。未来,随着信号处理技术的不断发展,EMD及其变种(如EEMD、CEEMDAN等)将继续在各个领域发挥重要作用。

qq_38334677的博客 1749

【Linux】shell编程2(算数运算符、算术操作符、运算命令、(())、expr命令用法、let、bc、$[]、read命令、Shell条件测试 、文件测试、字符串测试、整数二元比较、逻辑操作符)

read命令用来从标准输入中获取变量值,read是bash内置命令。 Read可以带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项。最常用的是p和t;

Linux小白一只~正处于学习阶段,觉得我写的还好的请多多给我点赞呀,谢谢大家!!(๑>ڡ<)☆ 739

芒果YOLO11改进59:分类损失函数Loss篇FocalLoss:即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

即插即用|最新改进FocalLoss损失函数,提高处理不平衡数据分类场景下的任务性能,提升YOLO11检测精度

包括YOLOv5、YOLOv7、YOLOv8等模型改进 551

[Linux][Shell][Shell数学运算]详细讲解

[Linux][Shell][Shell数学运算]详细讲解

SnowK博客 3364

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Linux中,关于Shell脚本的基本语法(一)

在Linux中,Shell脚本非常!非常重要!!!(我们一起学习哈) 在写Shell脚本的过程中,掌握最基本的脚本语法,是完成Shell脚本的关键基础所在。但是,掌握Shell脚本的基础内容,也不是一蹴而就的!需要长期来练习,付出大量的时间与努力。(我也正在学习的路上…一起呗) 每天坚持学习 在这个信息发展特别快的时代,根本没有稳定的工作可言,拒绝学习,拒绝成长,就随时会被淘汰。 一个人做事,在...

疯子爱卤蛋 487

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

shell开发基础-数值计算和let命令和expr命令

w 当由pathname指定的⽂件或⽬录存在并且可执⾏时返回true。-o 当由pathname指定的⽂件或⽬录存在并且被⼦当前进程的有效⽤户ID所指定的⽤户拥有时返回true。-g 当由pathname指定的⽂件或⽬录存在并且设置了SGID位时返回为true。-k 当由pathname指定的⽂件或⽬录存在并且设置了“粘滞”位时返回true。-u 当由pathname指定的⽂件或⽬录存在并且设置了SUID位时返回true。-r 当由pathname指定的⽂件或⽬录存在并且可读时返回为true。

会看文档就行 808

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SHELL脚本-算数运算+条件判断

SHELL脚本-算数运算+条件判断 算数运算 整数运算 默认条件下,shell仅支持整数的 + - * / %(取模,求余) 通过$(( )) [root@server1 ~]# echo $((1+1)) 2 [root@server1 ~]# echo $((5/2)) 2 [root@server1 ~]# echo $((5%2)) 1 通过$[ ] [root@server1 ~]# echo $[2*3] 6 通过expr命令 [root@server1 ~]# expr 1+2 #运算

gxy_learning的博客 701

Shell学习笔记——算数运算与条件测试

算数运算 1. 使用let命令    #!/sbin/bash var1=2 var2=3 let sum=var1+var2 echo $sum 使用let命令式,变量前不需要加$号 只用于整数运算,不适用浮点数 2. 使用$[...] []的使用与let类似 #!/sbin/bash var1=2 var2=3 sum=$[ var

Windeal 1748

Linux-shell篇之算数运算

shell中如何进行算数运算: 1、let 算数运算表达式 let C=$A+$B 例子(计算1970到现在的天数): -------------------------------------------------------- #!/bin/bash TIMESTAMP=`date +%s` let USEDAYS=$TIMESTAMP/86400 echo $USEDAYS ------...

yaoyujie157的博客 360

Linux shell开发小细节分享

Linux shell编程:    1.算数运算 ,使用 expr 外部程式或let 命令 #!/bin/sh a=$1 b=$2 #判读参数为空处理 if [ ! -n "$1" ] then echo "First parametor is null" else echo "First parametor is $1" fi let c=$a+$b d=`expr

学习笔记 499

shell的变量运算和条件测试

shell,算数运算符,判断数字大小、${}中的使用(#, ##,%,%%,:, /, //)、条件测试的语法 (()), [[]],[],test、数学计算的命令

wei的博客 524

shell学习笔记之四(整数运算)

算数运算

琼华 4016

Shell编程 算数和字符串运算(Ubuntu)

前序:shell中的输入和输出 1.输入 read var read var1 var2 两个值之间用空格或者tab键 不能用回车 read -p "提示字符串" var read -t 秒 var 多少秒后如果没有输入就结束 read -n num var 输入num个字符后结束输入 read -s var 输入的内容不回显 类似于输入密码 2.输出 -----> echo 1.sh...

柒哥的博客 1798

Linux之shell运算符

shell脚本中支持很多种运算符,运用也基本相同 1.算数运算符 算数运算符 说明 举例 + 加法 expr $a + $b - 减法 expr $a - $b * 乘法 expr $a * $b / 除法 expr $b / $2 % 取余 expr $b % $a = 赋值 a=$b == 相等。判断两个数字是否相等,相等则返回true [ $a == $b ] != 不相等。判断两个数字是否相等,不相等则返回true [ $a != $b ] 注意 其实

chd_sun的博客 1099

shell变量运算及条件测试

shell变量运算

dyslhl的博客 155

Linux Shell之函数计算

每种程序语言都需要算数操作。shell也有一些算数操作的方法。 shell环境可以使用let,(())和[]命令执行一些基础的算数操作。expr和bc这两个公用的命令对于执行预操作也是很有帮助的。 可以将数值指定为常规变量赋值,该赋值存储为字符串。然后,我们通常使用以下方法来操作数字: #!/bin/bash no1=4; no2=5; let命令可以被直接用来进行一些基本的操作。 在使用let...

清风自来 866
上一篇: 指针与数组的关系
下一篇: stat 命令
lamdoc
博客等级 码龄18年 155粉丝 655原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值