如果要执行算术运算(数学计算),就离不开各种运算符号,和其他编程语言类似,Shell 也有很多算术运算符,下面就给大家介绍一下常见的 Shell 算术运算符,如下表所示。Shell 算术运算符一览表算术运算符说明/含义

+、-加法(或正号)、减法(或负号)

*、/、%乘法、除法、取余(取模)

**幂运算

++、--自增和自减,可以放在变量的前面也可以放在变量的后面

!、&&、||逻辑非(取反)、逻辑与(and)、逻辑或(or)

、>=比较符号(小于、小于等于、大于、大于等于)

==、!=、=比较符号(相等、不相等;对于字符串,= 也可以表示相当于)

<>向左移位、向右移位

~、|、 &、^按位取反、按位或、按位与、按位异或

=、+=、-=、*=、/=、%=赋值运算符,例如 a+=1 相当于 a=a+1,a-=1 相当于 a=a-1

但是,Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令,这让初学者感觉很困惑,也让有经验的程序员感觉很奇葩。

下面我们先来看一个反面的例子:

[c.biancheng.net]$ echo 2+8

2+8

[c.biancheng.net]$ a=23

[c.biancheng.net]$ b=$a+55

[c.biancheng.net]$ echo $b

23+55

[c.biancheng.net]$ b=90

[c.biancheng.net]$ c=$a+$b

[c.biancheng.net]$ echo $c

23+90

从上面的运算结果可以看出,默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据(数值或者变量)当做字符串,把+当做字符串连接符,最终的结果是把两个字符串拼接在一起形成一个新的字符串。

这是因为,在 Bash Shell 中,如果不特别指明,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储。

换句话说,Bash shell 在默认情况下不会区分变量类型,即使你将整数和小数赋值给变量,它们也会被视为字符串,这一点和大部分的编程语言不同。

这一点我们已在《Shell变量》中提到,读者可以猛击链接回忆。

数学计算命令

要想让数学计算发挥作用,必须使用数学计算命令,Shell 中常用的数学计算命令如下表所示。Shell 中常用的六种数学计算方式运算操作符/运算命令说明

(( ))用于整数运算,效率很高,推荐使用。

let用于整数运算,和 (()) 类似。

$[]用于整数运算,不如 (()) 灵活。

expr可用于整数运算,也可以处理字符串。比较麻烦,需要注意各种细节,不推荐使用。

bcLinux下的一个计算器程序,可以处理整数和小数。Shell 本身只支持整数运算,想计算小数就得使用 bc 这个外部的计算器。

declare -i将变量定义为整数,然后再进行数学运算时就不会被当做字符串了。功能有限,仅支持最基本的数学运算(加减乘除和取余),不支持逻辑运算、自增自减等,所以在实际开发中很少使用。如果大家时间有限,只学习 (()) 和 bc 即可,不用学习其它的了:(()) 可以用于整数计算,bc 可以小数计算。

在接下来的章节中,我们将逐一为大家讲解 Shell 中的各种运算符号及运算命令。

本文来自投稿,不代表访得立场,如若转载,请注明出处:http://www.found5.com//view/790.html

shell 做加法运算_Shell数学计算(算术运算,加减乘除运算)相关推荐

  1. shell 做加法运算_C语言探索之旅 | 第一部分第七课:运算那点事

    上一课是 C语言探索之旅 | 第一部分第六课:变量的世界(三),显示变量内容 今天,我们一起来学习 C语言(对大多数编程语言也类似)中的运算. 之前的课中,我们已经说过:电脑是一台"笨笨&q ...

  2. 数学题库python_GitHub Python项目推荐|一个拍照做题程序|数学计算题识题|opencv...

    GitHub Python项目推荐|一个拍照做题程序输入一张包含数学计算题的图片输出识别出的数学计算式以及计算结果 项目分析 仓库名称:mathAI 标星(star):1469 (网红级项目,高手作品 ...

  3. 剑指offer不用加减乘除做加法_剑指Offer-不用加减乘除做加法

    题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 思路 思路一: 位运算 思路二: 递归 思路三: 调用Integer的sum方法 思路四: 自增自减 代码实现 ...

  4. sql的加减乘除运算_sql查询,sql加减乘除运算,sql函数

    好记性不如写成博客 公司要做个台帐报表,用到sql加减乘除运算,sql判断及各种函数等,如下 create table temp( SELECT (@rowNO := @rowNo+1) AS '序号 ...

  5. shell 做加法运算_使用shell脚本实现加法乘法运算

    编写一个shell脚本,实现加法和乘法运算. #!/bin/bash #Function:num1+num2 num3*num4 sum(){ read -p "please key in ...

  6. c语言五年级小学生题目及答案,小学五年级下册数学计算题库

    一.直接写得数9.782÷3.2=53.73-17.49=8.76+0.351=42.4+7.6=1.58+2.42=7.8-5.6=1.25×4=7.8×0.5=3.9+2.7=0.24÷0.3=2 ...

  7. 以计算机思维思考当下面向未来,面向未来的核心素养:从运算能力到计算思维...

    吴洁莹+徐章韬 随着数学的广泛应用.计算机技术和现代通讯技术的快速发展,社会对人们思维水平的要求也越来越高.思维是人类认识世界的框架,思维是在能力培养的过程中形成的,从能力上升到思维,是数学课程的应有 ...

  8. Java实现Complex复数类及其常见数学计算

    Complex 数学计算:加减乘除.求模.辐角.平方根.倒数.相反数.共轭复数等 其他:字符串转复数parseComplex().复数转字符串toString()等 import java.util. ...

  9. Shell数学计算(算术运算,加减乘除运算)

    声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用,在该博客的基础上做了一定程序的简略和修改. 参考博客 : 原文链接:http://c.biancheng.net/shell ...

最新文章

  1. eclipse实现热部署和热启动
  2. 使用脚本将数据从辅助数据源传送到 InfoPath 域
  3. 黄聪:PHP网站流量统计开源程序大全
  4. docker部署tomcat+mysql服务
  5. [转载] Python3网络爬虫
  6. [css] 要是position跟display、overflow、float这些特性相互叠加后会怎么样?
  7. 我国四大常用坐标系及高程坐标系【转载】
  8. websocket java8_Java API For WebSocket(八)服务器安全
  9. python圆柱体_python绘制圆柱体的方法
  10. cgi web页面传入命令
  11. JS中showModalDialog (模态窗口)详细使用
  12. pe_xscan 增加 O31 项
  13. 什么是句柄/底层绘图函数
  14. 监控网站与接口宕机,并推送 App 消息提醒的程序
  15. 自定义按钮实现video暂停和播放的方法
  16. android 照片 文件夹在哪里,Android手机照片文件夹在哪里?删除的手机照片怎么恢复...
  17. 详解GBase 8c数据库安全之数据透明加密
  18. 《Python语言程序设计》刘卫国主编字符串与正则表达式习题5详解(选择)
  19. 分享【珠海】联想 IBM X3850 X6服务器维修真实案例
  20. 使用双标记写html代码时如何进行嵌套,【2020Python修炼记】前端开发之 前端基础和HTML入门...

热门文章

  1. ODE(Open Dynamics Engine)学习笔记
  2. OBU-采用DSRC技术与RSU进行通讯的车载单元装置
  3. html5-表格练习题
  4. matlab初学matlab——结构体
  5. PostgreSQL批量修改列名大小写
  6. 编译原理习题(含答案)——2程序设计语言及其文法——哈工大陈鄞配套版本
  7. 知识计算机硬件 教学设计,计算机硬件系统教学设计.doc
  8. 微服务调用链监控开源工具CAT
  9. 使用 bibtex 批量生成 bibitem 内容的方法
  10. int~long long表示最大、最小数字