整数运算一般通过 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

在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”用于比较整型数。

shell算数表达式运算相关推荐

  1. Shell脚本攻略03-使用shell进行数学运算

    概述 无论哪种编程语言都少不了算术操作,在这则攻略中,我们将会研究在shell中进行算术运算的各种方法. 理论知识 在Bash shell环境中,可以利用let. (( ))和[]执行基本的算术操作. ...

  2. linux算术表达式求值数据结构,数据结构:算数表达式求值演示

    题目:设计一个程序,演示用算符优先法对算数表达式求值的过程. 一.需求分析 以字符序列的形式从终端读入输入语法正确.不含变量的整数表达式.利用教科书表3.1给出的算符优先关系,实现对算数四则混合运算表 ...

  3. 算数运算符及算数表达式

      在计算机语言中,用运算符将操作对象连接起来就构成了表达式,这与数学中的表达式类似.运算符按运算性质可分为算术运算符.关系运算符.逻辑运算符等.本节介绍一下Python3的算数运算符及算数表达式. ...

  4. (三)shell中的运算与 if 语句——数据比较、文件判断、if条件语句用法等

    文章目录 一.shell中的运算 1.1.数学比较运算(整数比较) 1.2.字符串比较运算(加引号) 1.3.文件的比较与检查(-e, -d, -f ...) 二.if条件语句 2.1.if语句 2. ...

  5. 数据结构——整数算数表达式

    实现要求: (1) 以字符序列的形式从终端输入语法正确的.不含变量的整数表达式.利用 下表给出的算符优先关系,实现对算术混合运算表达式的求值,并仿照求值中运 算符栈.运算数栈.输入字符和主要操作的变化 ...

  6. 栈的应用-算数表达式求值

    List item ** 实验要求** 河 南 师 范 大 学 20学年-21学年第 1 学期 数据结构实验任务书 专业名称: 实验学时: 4 课程名称:数据结构 任课教师: 王亚丽 实验题目:栈的应 ...

  7. javascript 变换变量 数据类型 类型转换 运算符 运算表达式 运算优先级 理解笔记...

    变换变量(两种方法) 问:有A,B两个变量,现在怎么让A,B两个变量的值互换? 答:1.定义第三个变量  取出存取A,B变量的值 代码:var a = 10; var  b = 20; var  c ...

  8. 表达式运算(包含大整数加减乘)

    思路: 之前写的乘法有点小问题,现在更正了 普通表达式运算: 采用字符串的形式输入一个表达式和栈结构来存储中间运算结果,可以参照<数据结构(严慧敏)>,依次从字符串中读取字符,如果是数字则 ...

  9. 【阿里云IoT+YF3300】7.物联网设备表达式运算

    很多时候从设备采集的数据并不能直接使用,还需要进行处理一下.如果采用脚本处理,有点太复杂了,而采用表达式运算,则很方便地解决了此类问题. 一. 设备连接 运行环境搭建:Win7系统请下载相关的设备驱动 ...

最新文章

  1. BIRCH聚类算法原理
  2. [C#-SQLite] SQLite一些奇怪的问题
  3. Spark SQL的整体实现逻辑
  4. bubbo调用Failed to invoke remote method异常解决
  5. Linux并发程序课程设计报告,网络操作系统课程设计--进程机制与并发程序设计-linux下生产者与消费者的问题实现.doc...
  6. 那些你不可错过的Java博客
  7. Cesium知识点:根据经纬度获取高程
  8. 三国志·魏书·牵招传
  9. Win7---保护眼睛的电脑窗口颜色设置
  10. 阿里面试——机器学习岗四个面试案例
  11. elementui实现横向时间轴_element ui step组件在另一侧加时间轴显示
  12. android标题栏跑马灯,Android跑马灯效果
  13. c语言 上传图片至服务器,JSP+Servlet实现文件上传到服务器功能
  14. 跨境电商人要知道的知识产权侵权防范小知识
  15. Review (Homography+Camera calibration) and others(Week 7 + Week 8)
  16. 《牧羊少年奇幻之旅》的优秀读后感分享3300字
  17. linux中ll和ls的区别,分别是什么意思?
  18. TMS320F28377S 学习笔记2 BGA封装的焊接
  19. 如何解决All flavors must now belong to a named flavor dimension.?
  20. 笑出腹肌的 Emoji 表情符号,你值得拥有

热门文章

  1. 大数据将改变信息生命周期管理
  2. 8个问题全面了解5G关键技术Massive MIMO
  3. [转]kaldi中的特征提取
  4. Bmob图片上传遇到的坑
  5. bootstrap-按钮(按钮工具栏)
  6. 《iOS 9 开发指南》——第6章,第6.4节 Interface Builder中的故事板——Storyboarding...
  7. CSS3 Border-image
  8. Java线程Dump分析工具--jstack
  9. 路由器 jffs分区 简介
  10. python 删除list中的第一个元素