Shell(())如何实现对整数进行数学运算

  介绍

这篇文章主要介绍“壳牌(())如何实现对整数进行数学运算”,在日常操作中,相信很多人在外壳(())如何实现对整数进行数学运算问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“壳牌(())如何实现对整数进行数学运算”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

双小括号(())是Bash Shell中专门用来进行整数运算的命,令它的效率很高,写法灵活,是企业运维中常用的运算命令。

注意:(())只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。后续讲到公元前的命令可以用于小数运算。

壳(())的用法

双小括号(())的语法格式为:
<代码>((表达式))

通俗地讲,就是将数学运算表达式放在((和))之间。

表达式可以只有一个,也可以有多个,多个表达式之间以逗号,分隔。对于多个表达式的情况,以最后一个表达式的值作为整个(())命令的执行结果。

可以使用美元获取(())命令的结果,这和使用美元获得变量值是类似的。

表1:(())的用法

运算操作符/运算命令说明((=10 + 66)
, ((b=15))
, ((c=a + b))这种写法可以在计算完成后给变量赋值。以((b=15))为例,即将15的运算结果赋值给变量c。
,
,注意,使用变量时不用美元加前缀,(())会自动解析变量名。=$ ((10 + 66)
, b=$ ((15))
, c=$ ((a + b))可以在(())前面加上美元符号获取(())命令的执行结果,也即获取整个表达式的值,以c=$ ((a + b))为例,即a + b将这个表达式的运算结果赋值给变量c。
,
,注意,类似,c=((a + b))这样的写法是错误的,不加美元就不能取得表达式的结果。((a> 7,,b==c))(())也可以进行逻辑运算,如果语在句中常会使用逻辑运算.echo $((+ 10))需要立即输出表达式的运算结果时,可以在(())前面加美元符号。((=3 + 5,b=a + 10))对多个表达式同时进行计算。

在(())中使用变量无需加上美元前缀,(())会自动解析变量名,这使得代码更加简洁,也符合程序员的书写习惯。

壳(())实例演示

【实例1】利用(())进行简单的数值计算。

[jb51.net],美元echo  $ ((1 + 1))   2   [jb51.net],美元echo  $ ((6))   3.   [jb51.net],美元我=5   [jb51.net],美元((我* 2=)),#可以简写为,((我*=2))。   [jb51.net],美元echo  $小姐:#使用,echo 输出变量结果时要加,美元。   10

【实例2】用(())进行稍微复杂一些的综合算术运算。

[jb51.net],美元((=1 + 2 * * 3 - 4 % 3))   [c.biancheng.net],美元echo 一个美元   8   [jb51.net]美元,b=$((1 + 2 * * 3 - 4 % 3)), #运算后将结果赋值给变量,变量放在了括号的外面。   [jb51.net],美元echo  $ b   8   [jb51.net],美元echo  $((1 + 2 * * 3 - 4 % 3)), #也可以直接将表达式的结果输出,注意不要丢掉,,美元符号。   8   [jb51.net],美元=$((100 *(100 + 1)/2)),#利用公式计算1 + 2 + 3 +…+ 100的和。   [jb51.net],美元echo 一个美元   5050   [jb51.net],美元echo  $((100 *(100 + 1)/2)), #也可以直接输出表达式的结果。   5050

【实例3】利用(())进行逻辑运算。

[jb51.net],美元echo  $ ((3 & lt; 8)), # 3 & lt; 8,的结果是成立的,因此,输出了,1,1,表示真   1   [jb51.net],美元echo  $ ((8 & lt; 3)), # 8 & lt; 3,的结果是不成立的,因此,输出了,0,0,表示假。   0   [jb51.net],美元echo  $((8==8)), #判断是否相等。   1   [jb51.net],美元if (8祝辞7,,5==5))   在那   祝辞echo 是的   祝辞fi   以前是的

最后是一个简单的如果语句的格式,它的意思是,如果8在7成立,并且5==5成立,那么输出是的。显然,这两个条件都是成立的,所以输出了是的。

【实例4】利用(())进行自增(+ +)和自减(——)运算。

[jb51.net],美元=10   [jb51.net],美元echo  $((+ +)), #如果+ +在的后面,那么在输出整个表达式时,会输出一个的值,因为为10,所以表达式的值为10。   10   [jb51.net],美元echo  a 美元;#执行上面的表达式后,因为有一个+ +,因此一个会自增1,因此输出一个的值为11。   11   [jb51.net],美元=11   [jb51.net],美元echo  $((()), #如果——在一个的后面,那么在输出整个表达式时,会输出一个的值,因为为11,所以表达式的值的为11。   11   [jb51.net],美元echo  a 美元;#执行上面的表达式后,因为有一个———因此一个会自动减1,因此为10。   10   [jb51.net],美元=10   [jb51.net],美元echo  $((()), #如果——在一个的前面,那么在输出整个表达式时,先进行自增或自减计算,因为为10,且要自减,所以表达式的值为9。   9   [jb51.net],美元echo  a 美元;#执行上面的表达式后,一个自减1,因此为9。   9   [jb51.net],美元echo  $((+ +)), #如果+ +在的前面,输出整个表达式时,先进行自增或自减计算,因为为9,且要自增1,所以输出10。   10   [jb51.net],美元echo  a 美元;#执行上面的表达式后,一个自增1,因此为10。   10

Shell(())如何实现对整数进行数学运算