Shell脚本学习二:Shell中的算术运算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本学习二:Shell中的算术运算相关的知识,希望对你有一定的参考价值。

Linux中有四种算术运算,分别是expr,let,$[],$(())。

下面分别介绍一下这四种算术运算的使用方法


一、expr的用法

[[email protected] ~]# expr 1 + 2
3
[[email protected] ~]# expr 1 - 2
-1
[[email protected] ~]# expr 8 + 6
14
[[email protected] ~]# expr 8 - 6
2
[[email protected] ~]# expr 8 \* 6
48
[[email protected] ~]# expr 8 / 6
1
[[email protected] ~]# a=3
[[email protected] ~]# b=4
[[email protected] ~]# expr $a + $b
7

以上分别是expr做加减乘除运算的例子。

在使用expr做运算的时候,如果想要将运算结果赋值给另一个变量,就要像如下的操作那样。

[[email protected] ~]# a=`expr 2 + 3`
[[email protected] ~]# echo $a
5

下面说一下使用expr要注意的地方。

1、使用expr做运算的时候,算术和运算符之间要用空格分隔开,否则将不会进行运算

[[email protected] ~]# expr 1+2
1+2

2、在进行乘法运算的时候,*前面要接\转义,因为*在正则表达式里面代表匹配多个的意思

[[email protected] ~]# expr 2 * 3
expr: syntax error


二、let命令

[[email protected] ~]# let a=2+3
[[email protected] ~]# echo $a
5
[[email protected] ~]# let a=2-3
[[email protected] ~]# echo $a
-1
[[email protected] ~]# let a=2*3
[[email protected] ~]# echo $a
6
[[email protected] ~]# let a=2/3
[[email protected] ~]# echo $a
0
[[email protected] ~]# b=4
[[email protected] ~]# c=2
[[email protected] ~]# let a=$b/$c
[[email protected] ~]# echo $a
2

在使用let的时候,一般都需要将他们赋给一个变量来接受运算的结果。

let跟expr不一样,不需要再算数和运算符之间加空格。


三、$[]的使用

[[email protected] ~]# a=$[2+3]
[[email protected] ~]# echo $a
5
[[email protected] ~]# a=$[2-3]
[[email protected] ~]# echo $a
-1
[[email protected] ~]# a=$[2*3]
[[email protected] ~]# echo $a
6
[[email protected] ~]# a=$[2/3]
[[email protected] ~]# echo $a
0


四、$(())的使用

[[email protected] ~]# a=$((1+3))
[[email protected] ~]# echo $a
4
[[email protected] ~]# a=$((1-3))
[[email protected] ~]# echo $a
-2
[[email protected] ~]# a=$((1*3))
[[email protected] ~]# echo $a
3
[[email protected] ~]# a=$((1/3))
[[email protected] ~]# echo $a
0


本文出自 “ssspure” 博客,请务必保留此出处http://ssspure.blog.51cto.com/8624394/1862362

以上是关于Shell脚本学习二:Shell中的算术运算的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本中的算术运算

Shell脚本编程算术运算和条件测试

1.2shell脚本运算基础

linux shell 脚本入门学习(二流程控制)

shell中的let vs expr vs双括号算术

shell脚本数组的数学运算