shell-技术_算数运算

目录

算数运算符一览表:

运算操作符:

运算命令一览表:

运算命令使用方法:

运算命令:(())

运算命令:let

运算命令:$[]

运算命令:expr

运算命令:bc


     

        数学计算,就离不开各种运算符号,shell 也有很多算术运算符,但是,Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令.

算数运算符一览表:

符号含义符号含义符号含义符号含义
+加号/正号++自增<比较符号:小于>>向右移位
-减号/负号--自减>比较符号:大于<<向左移位
*乘号!逻辑非: 取反<=比较符号:小于等于~按位取反
/除号&&逻辑与: and>=比较符号:大于等于|按位或
%取余||逻辑或: or==比较符号:等于%按位与
**幂运算=赋值运算符:赋值!=比较符号:不等于^按位异或

注意:不能直接进行算数运算,必须使用数学计算命令

运算操作符:

运算命令一览表:

运算操作符/运算命令说明
(( ))用于整数运算,效率很高,推荐使用。
let用于整数运算,和 (()) 类似。
$[]用于整数运算,不如 (()) 灵活。
expr可用于整数运算,也可以处理字符串。比较麻烦,需要注意各种细节,不推荐使用。
bclinux下的一个计算器程序,可以处理整数和小数。Shell 本身只支持整数运算,想计算小数就得使用 bc 这个外部的计算器。
declare -i将变量定义为整数,然后再进行数学运算时就不会被当做字符串了。功能有限,仅支持最基本的数学运算(加减乘除和取余),不支持逻辑运算、自增自减等,所以在实际开发中很少使用。

运算命令使用方法:

运算命令:(())

  •  双小括号 (( )) 是 Bash shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活,是企业运维中常用的运算命令。
  • 注意:(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算
[root@VM_0_9_centos ~]# echo $((1+1))
2
[root@VM_0_9_centos ~]# echo $((3-1))
2
[root@VM_0_9_centos ~]# echo $((3*1))
3
[root@VM_0_9_centos ~]# echo $((3/1))
3

运算命令:let

  • let 命令和双小括号 (( )) 的用法是类似的,它们都是用来对整数进行运算。
  • 注意:和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。
  • Shell let 命令的语法格式为:  let 表达式  或者  let "表达式"  或者  let '表达式'
  • 当表达式中含有 Shell 特殊字符(例如 |)时,需要用双引号" "或者单引号' '将表达式包围起来
  • let 适合++ -- 自增 自减 运算,直接得出结果
[root@VM_0_9_centos ~]# a=7
[root@VM_0_9_centos ~]# b=8
[root@VM_0_9_centos ~]# let c=$a+$b
[root@VM_0_9_centos ~]# echo $c
15
[root@VM_0_9_centos ~]# i=1
[root@VM_0_9_centos ~]# let i++
[root@VM_0_9_centos ~]# echo $i
2

运算命令:$[]

  • 和 (())、let 命令类似,$[] 也只能进行整数运算。  
  • shell $[] 的用法如下:  $[表达式]  $[] 会对表达式进行计算,并取得计算结果。
  • 如果表达式中包含了变量,那么你可以加$,也可以不加。
[root@VM_0_9_centos ~]# echo $[1+1]
2
[root@VM_0_9_centos ~]# echo $[2*2+1]
5
[root@VM_0_9_centos ~]# echo $[(2*2+2)/2]
3

运算命令:expr

  • expr 是 evaluate expressions 的缩写,译为“表达式求值”。
  • expr 是一个功能强大,并且比较复杂的命令,它除了可以实现整数计算,还可以结合一些选项对字符串进行处理
  • 注意中间的空格(如果没有会当成一个整体)且只能用于整数计算(区别于小数)
  • 另外使用来做乘法运算时要记得转义,小括号也需要转义,因为有特殊的含义(通配符)
[root@VM_0_9_centos ~]# expr 5 - 2
3
[root@VM_0_9_centos ~]# expr 5 + 2
7
[root@VM_0_9_centos ~]# expr 5 \* 2
10
[root@VM_0_9_centos ~]# expr \( 2 + 3 \) \* 2
10

运算命令:bc

  • shell 内置了对整数运算的支持,但是并不支持浮点运算,而bc 命令可以很方便的进行浮点运算,当然整数运算也不再话下。
  • bc 甚至可以称得上是一种编程语言了,它支持变量、数组、输入输出、分支结构、循环结构、函数等基本的编程元素
  • 在终端输入bc命令,然后回车即可进入 bc 进行交互式的数学计算
  • 在脚本中,可以通过管道和输入重定向来使用 bc
[root@VM_0_9_centos ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1+1
2
5*2
10
1.25*2
2.50
1.24/0.2
6
quit

脚本内使用 

[root@VM_0_9_centos ~]# sh 1.sh
2
10
2.48
6
[root@VM_0_9_centos ~]# cat 1.sh
echo 1+1 |bc
echo 5*2 |bc
echo 1.24*2 |bc
echo 1.24/0.2 |bc

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值