【Linux Shell脚本编程】数学运算
在Shell中变量的数据类型由于默认是字符串,是不支持进行数学运算的,比如下面例子中将变量a和b相加,最终的运行结果仅仅是将结果作为字符串进行了打印,而并没有进行计算
a=10 b=5 c=$a+$b echo $c 10+5
如果要在shell中做数学运算的话,可以使用下面的方法:
1、expr命令,用于整数运算,不支持浮点数,算术表达式需要加反引号,算术表达式之间必须要有空格。该命令还支持一些函数,可以计算给定字符串的长度或者进行模式匹配
a=50 b=10 c=`expr $a + $b` echo $c #结果为60 #计算长度 name=tanglu [ `expr length $name` -eq 6 ] #判断name变量长度是否为6 #模式匹配,":"为固定语法格式,后面的".*\.jpg"则为匹配条件 if expr "$1" ":" ".*\.jpg";then echo "文件后缀符合.jpg要求" fi
2、bc命令(结合scale命令实现浮点运算,scale的值代表小数点的精度)
echo "scale=2;1.2*2.5"|bc
3、let命令,取代并扩展expr的工具,同样不支持浮点数
let number=1+5 echo $number #输出结果为6 a=10 b=5 let c=$a+$b echo $c #输出结果为15
4、$[算术表达式],支持浮点数
a=8 b=2 c=$[$a+$b] echo $c #输出结果为10
5、$((算术表达式)),支持浮点数
a=7 b=1 c=$((a+b)) echo $c #输出结果为8
脚本演示0-100自动求和#!/bin/bash
sum=0
for ((i=1;i<=100;i++))
do
sum=`expr $i+$sum`
done
echo $sum
版权声明:本文章版权归数据库运维网(www.ywdba.cn)所有。如需引用本站内容,请注明来源及作者。
评论