Linux-Shell变量的算术运算
一、算术运算符
1、+、-
求和、 a+b a-b
2、 *、/、%
求乘积,商,余数 a*b a/b a/b
3、**
幂运算,例如 3**3 是求 3 的立方,即 27
4、 +=、-=、 *=、/=、%=
例 a+=1 相当于 a=a+1
5、++variable、- -variable
先将变量variable的值加1,然后再赋给variable; 先将变量variable的值减1,然后再赋给 variable。
6、variable++、 variable--
先使用 variable 的值,然后再将该变量的值加 1 ; 先使用 variable 的值,然后再
将该变量的值减 1。
二、运算命令
1、(())
用于整数运 算的常用运 算符
在 (()) 中使用变量时可以去掉变量前的 $ 符号。
例如: var=$((1+2*9/3))

2、let
用于整数运算。
使用 let 命令可以执行一个或者多个算术表达式,其中的变量名毋需使用 $ 符号。
例如: let var2=1+2*9/3

3、expr
可用于整数运算,但还有很多其他的额外功能。
使用 expr 时,运算符及用于计算的数字左右都至少有一个空格,否则会报错;使用乘号时,必须使用反斜线屏蔽其特定含义;使用expr 做计算,将一个未知的变量和一个已知的整数相加,看返回码是否为 0,如果为 0 就认为做加法的变量为整数,否则就不是整数。
例如:var3=`expr 1 + 2 \* 9 / 3`

注意:当反引号中的的数字和+之间存在空格才能计算出结果,否则运行出来的是一个表达式4+2。
4、bc
linux下的一个计算器程序(适合整数及小数运算)
例如:echo `seq -s "+" 10` = `seq -s "+" 10|bc`
1+2+3+4+5+6+7+8+9+10 = 55
seq 是生成数字序列, -s 是指定数字序列之间的分隔符。

例如:var4=`echo 1+2*9/3 | bc`

5、$[]
用于整数运算
例如:var5=$[1+2*9/3]

6、awk
awk 既可以用于整数运算,也可以小数运算。
例如:
var6=`awk 'BEGIN {print 1+2*4/3}'`

例如:
var7=`echo 1 2 4 3 | awk '{print $1+$2*$3/$4}'`

Linux-Shell变量的算术运算的更多相关文章
- Linux shell 变量 数学 运算
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...
- Shell变量与算术运算
区分两个 Shell Shell 语言与 Shell 解释器 Shell 语言 写 Shell 脚本使用的是 Shell 语言,Shell 既是一种命令语言,又是一种程序设计语言. 作为命令语言,它交 ...
- python文件读写操作与linux shell变量命令交互执行
python对文件的读写还是挺方便的,与linux shell的交互变量需要转换一下才能用,这比较头疼! #coding=utf-8 #!/usr/bin/python import os impor ...
- Linux Shell变量
200 ? "200px" : this.width)!important;} --> 介绍 变量是shell脚本中必不可少的组成部分,在脚本中使用变量不需要提前声明.在ba ...
- Linux shell变量详解
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个 ...
- Linux Shell 变量自加
转至:https://blog.csdn.net/dj0379/article/details/50946398/ declare -i iv=$svnvlet iv+=1shell中变量自增的实现方 ...
- 《Linux shell变量总结回顾》RHEL6(转)
文章版权:http://www.cnblogs.com/linux-super-meng/ 环境变量路径: [root@localhost ~]# set //查看到的是局部变量和全局变量2种 [ ...
- linux shell变量$#,$@,$0,$1,$2的含义解释
变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 ...
- Linux - Shell变量的配置守则
变量的配置守则 变量与变量内容以一个等号『=』来连结,如下所示: 『myname=VBird』 等号两边不能直接接空格符,如下所示为错误: 『myname = VBird』或『myname=VBird ...
- linux shell 变量子串
linx变量子串 在本例子中,变量 test=https://www.//cnblogs./com//jjmaokk/p/10135401.html 1,${#parameter} 返回变量$para ...
随机推荐
- Kafka 社区KIP-405中文译文(分层存储)
原文链接:https://cwiki.apache.org/confluence/display/KAFKA/KIP-405%3A+Kafka+Tiered+Storage 译者:Kafka KIP- ...
- P2241
这么多年不写代码,竟然忘了longlong这茬,我半天没想明白错在哪里,过了好久才反应过来.浪费不少时间,真的得记住longlong 啊.... Code #include <iostream& ...
- 线段树的区间更新 hdu 1698
***第一次写的果断超时,所以百度了一下,知道我写的每一次都要递归最底层,这样会花费很多时间,第二次写得线段树的区间更新,因为一个条件写错了,真是让我坑到死, 这样区间相同的不必更新,省了很多时间.. ...
- C++ 不使用虚析构的后果及分析
很多 C++ 方面的书籍都说明了虚析构的作用: 保证派生类的析构函数被调用,并且使析构顺序与构造函数相反 保证资源能够被正确释放 很久一段时间以来,我一直认为第 2 点仅仅指的是:当派生类使用 RAI ...
- vim工具极简总结
vim工具总结 背景 很多操作记不住. 想着总结当笔记使用. 备忘 基本总结 vim somefile 打开/新建文件 i/a/insert按键 进入插入模式 insert 连续两次 进入替换模式 e ...
- [转帖]通过 TiUP 部署 TiDB 集群的拓扑文件配置
https://docs.pingcap.com/zh/tidb/stable/tiup-cluster-topology-reference 通过 TiUP 部署或扩容 TiDB 集群时,需要提供一 ...
- [转帖]s3fs
https://github.com/s3fs-fuse/s3fs-fuse s3fs allows Linux, macOS, and FreeBSD to mount an S3 bucket v ...
- rfc7230 Message Syntax and Routing
rfc7230 目录 rfc7230 2 Architecture 2.6 Protocol Versioning 3 Message Format 3.1 Start Line 3.1.1 Requ ...
- TypeScript工具类 Partial 和 Required 的详细讲解
场景描述: 场景描述:一个接口(IPerson)有很多个的字段,可能有几百.而且这些字段都是必须的. 我们需要使用这个接口,但是我又不可能使用它的全部.可能只会使用几个. 我还必须要使用这接口.这个时 ...
- webservice--WSDL文件生成本地的代理类
我们在对应第三方接口时常用:项目上右键---->服务引用---->WCF Web Service,如下图的页面----->填好url后---->转到,就可以发现服务,生成代理类 ...