基本数据类型的运算
shell 基本运算符
注意:
1、条件表达式要放在方括号之间,并且要有空格,例如:[a==a==a==b]是错误的,必须写成:[ $a== $b ] 。
2、乘号(*)之前必须加上反斜杠()才能实现乘法运算。
在shell中,对于基本数据类型的运算主要分为两种,整数运算和浮点数运算。
整数运算
在shell中,实现整数运算的有2种方法,一种是 expr命令,另外一种是通过方括号 $[]来实现。
expr
#!/bin/bash
expr 10 + 3 #输出13
expr 10+3 #输出10+3,是整体输出
expr 10 \* 3 #输出30
num1=$(expr 10 - 3)
num2=`expr 10 / 3`
echo num1+num2 = $[$num1 + $num2] #输出10
echo num1+num2 = $num1 + $num2 #输出7 + 3
总结:
在以上的乘法(*)中,用了反斜杠()来转义,不然会报错。
运算符前后必须要有空格,否则会被直接当做字符串返回。
方括号 $[]
#!/bin/bash
echo "10+3=" $[10+3] #输出13
echo "10 + 4=" $[10 + 4] #输出14
echo " 10 + 5 =" $[ 10 + 5 ] #输出15
总结,使用 $[] 作为运算操作命令,没有像使用 expr 命令一样的严格要求格式,so,我们常用的也是 $[] 来做基本的运算。
浮点数运算(小数)
在shell中,做浮点数运算一般是用bash的计算器(bc)。在shell脚本中,一般我们使用的方法是:
variable=$(echo “options;expression” | bc) 。
options是bc的一些选项,例如:可以通过scale去设置保留的小数位数。具体有哪些参数,可以通过 man bc 进行查看。
expression就是我们的具体表达式 ,如 10 * 10 。
"|"这个符号,可称作管道,为什么称作管道,你可以把它看做一根水管,水管的一头接入前一个命令的返回结果,一头接入下一个命令。表示将前一个命令的执行结果作为后一个命令的参数输入。
#!/bin/bash
num=$(echo "scale=2; 10 / 3" | bc)
echo $num
#保留2位小数,将结果赋值给了num, 输出3.33