shell中的算数运算
首先这里所说的算术运算是指加法(+), 减法(-),乘法(*),整除(/), 求余(%)四种运算,可以通过添加括号改变优先级,并且只能对整数进行运算(Linux Bash Shell默认不支持浮点数运算)
要在Linux Bash Shell中进行算术运算,有三种写法
一、使用let命令
1 | let sum =3+5 # sum <- 8 |
2 | let sum =3*5 # sum <- 15 |
3 | let sum =2/5 # sum <- 0 |
4 | let sum =11/5 # sum <- 2 |
5 | let sum =11%5 # sum <- 1 |
6 | let sum =-6-9 # sum <- -15 |
7 | let sum =(-6-9)*5 # sum <- -75 |
注意, 等号右边以及运算符和括号的两边都不能有空格
二、使用expr命令
01 | sum =` expr 2 - 5` # sum <- -3 |
02 | sum =` expr 2 + 5` # sum <- 7 |
03 | sum =` expr 3 \* 5` # sum <- 15 |
04 | sum =` expr 3 / 5` # sum <- 0 |
05 | sum =` expr 7 / 5` # sum <- 1 |
06 | sum =` expr \( 2 - 3 \) \* 6` # sum <- -6 |
07 |
08 | sum =` expr 2+4` # sum <- 2+4 |
09 | sum =` expr 2-4*6· # sum <- 2-4*6 |
10 | sum =` expr 1-(5-8)` # sum <- 1-(5-8) |
注意: 乘号(*), 左括号( ( ) , 右括号( ) )必须使用反斜杠(\)转义。expr右边以及运算符和括号的两边必须有空格; 如果采用紧凑的写法(紧凑格式可以不对*, (, )进行转义), 则返回算术表达式.
三、使用(( ... )) 的形式
1 | sum =$((3+5)) # sum <- 8 |
2 | sum =$(( 3 - 5 )) # sum <- -2 |
3 | sum =$(( 3 * 5 )) # sum <- 15 |
4 | sum =$(( 7 / 5 )) # sum <- 1 |
5 | sum =$(( 7 % 5 )) # sum <- 2 |
6 | sum =$(( (1 - 2 ) * 4 )) # sum <- -4 |
这种写法比较自由,无需对运算符和括号做转义处理,也可以采用松散或紧凑的格式.
原文地址: http://my.oschina.net/aiguozhe/blog/41516我的补充:
新建一文件:plus_minus.sh 复制一下代码:
a=$((3+4))
b=$((8/4))
c=$((7%4))
d=$((2*4))
echo $a
echo $b
echo $c
echo $d
echo ---------------------------------------
let e=3+4
let f=8/4
let g=7%4
let h=2*4
echo $e
echo $f
echo $g
echo $h
echo ========================================
i=`expr 3 - 4`
j=`expr 3 + 4`
k=`expr 2 \* 4`
echo $i
echo $j
echo $k
运行如下: