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 ...
随机推荐
- P5731
https://www.luogu.com.cn/problem/P5731 这道题被标为红题,真实难度应该介于红题和橙题之间,问题在于我高估了它的难度,以为至少有橙题的难度,一般不打表的我毫不犹豫选 ...
- python爬虫-豆瓣电影top250
一.python爬虫简介1.什么是爬虫:网络爬虫,是一种按照一定规则,自动抓取互联网信息的程序或者脚本.由于互联网数据的多样性和资源的有限性,根据用户需求定向抓取相关网页并分析已成为如今主流的爬取策略 ...
- java进阶(1)--final、常量
final是java的关键字,主要表示最终的 一.final修饰的类无法被继承
- wireshark 显示过滤表达式
转载请注明出处: 1.根据协议过滤: 在显示过滤表达式的输入框中直接输入对应的协议类型即可:http tcp udp 2.根据 IP 过滤: 根据源IP地址过滤:如源地址IP为:127.0.0. ...
- Oracle数据库如何解决创建用户名开头必须要C##问题?
1.问题 我们在创建用户,概要文件等时,由于使用的是容器数据库,其文件名必须以C##开头. 我们在学习过程中暂时不需要对齐进行区分,所以如何修改这个设定呢? 2.解决 参考链接如何解决创建用户名开头必 ...
- 【VSCode】秒下vscode
有时从vscode官网下载速度奇慢甚至失败,介绍一种方法可以秒下 进入官网选择要下载的版本 像我的电脑,下载网址根本打不开 修改下载网址,替换下载地址中红框字符串:vscode.cdn.azure.c ...
- 【Python】.format用法
格式化打印 print("***{}".format(args)) 格式化转换 module = "skull" print "MODULE_{} ...
- CSS 动画 : 3D翻页动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- [转帖]十分钟掌握 Vim 编辑器核心功能
https://juejin.cn/post/6929248764746006535 前言 相信不论是前端还是后台多多少少都需要上到服务器上做一些操作,改改配置文件等,大多数 Linux 服务器默认都 ...
- [转帖]容器环境的JVM内存设置最佳实践
https://cloud.tencent.com/developer/article/1585288 Docker和K8S的兴起,很多服务已经运行在容器环境,对于java程序,JVM设置是一个重要的 ...