Shell编程学习(4)----linux中数值处理的三种方法

1、Linux中的数值处理

在Linux系统中bash变量的值是以字符串方式存储。如果需要进行算术和逻辑操作,必须先转换为整数,得到运算结果后再转换回字符串,以便正确地保存于shell变量中。
bash提供了三种方法对数值数据进行算术运算:

(1) let命令
(2) shell扩展$(( expression ))
(3) expr命令

表达式求值以长整数进行,并且不作溢出检查。当在表达式中使用shell变量时,变量在求值前首先将被扩展和强制转换为长类型。
同组的运算符有相同的优先级。将表达式置于括号中可改变求值的次序。
以0为首的数字当作八进制数,以0x或0X为首的数字当作是十六进制数,除此之外则当作十进制数。

2、let命令

let可以用来计算算术表达式的值。如果表达式中有空格或者特殊字符,则应将表达式括在双引号中。
命令语法:let express-list
如果最后的表达式取值为0,let命令返回1;否则返回0。
看一个例子:

[root@localhost root]# let “x=6” “y = 9”“z = 16”
[root@localhost root]# let t=x+y
[root@localhost root]# echo “t= $t”
t= 15
[root@localhost root]# let A=2**x(2的6次方) B=y*z 
[root@localhost root]# echo “A=$A    B=$B”
A=64     B=144

3、$((expression))命令

Shell编程学习(4)----linux中数值处理的三种方法_第1张图片

不需要在expression中的变量名称前加上$符号

例子:

#!/bin/bash 
echo -n "How old are you? " 
read age 
echo "Wow, in $((100-age)) years, you'll be 100! "    

[root@localhost root]# ./age_check 
How old are you? 20
Wow, in 80 years, you'll be 100! 

4、exper命令

Shell编程学习(4)----linux中数值处理的三种方法_第2张图片

[root@localhost root]# a1=5
[root@localhost root]# a1=$( expr $a1 + 1 )
[root@localhost root]# echo $a1
6
[root@localhost root]# var1=$( expr $a1 \* $a1 )
[root@localhost root]# var1=$(($a1*$a1))
[root@localhost root]# echo $va1
36
[root@localhost root]# echo $( expr $va1 / 4 )
9
[root@localhost root]# echo $( expr $var1 % 10 )
6

你可能感兴趣的:(Linux)