刚学写shell批处理的时候,基本操作是不可或缺的:四则操作。下面是linux shell中的一个简单实现方法。
1.简单方法
复制代码如下:$ b=$((5*5 5-3/2)) $ echo $b29
在linux shell中,我们可以使用$(())将表达式放在括号中,可以实现运算的功能。
2.其它方法:
实现操作用:expr
复制代码如下:$ expr 5-41
注意:只要把要运算的表达式写在expr之后,保证参数和运算符号之间有一个空格即可。
类别
语法
说明
条件判断
表达式1 -表达式2
如果expr1不为零或null,则返回expr 1;否则,它返回expr2。
表达式1 表达式2
如果expr1和expr2不为零或null,则返回expr 1;否则,返回0。
算术
表达式1表达式2
返回expr1加上expr2的值。
表达式1 -表达式2
返回expr1减去expr2的值。
表达式1*表达式2
返回expr1乘以expr2的值。
表达式1 /表达式2
返回expr1除以expr2的值。
表达式1 %表达式2
返回expr1除以expr2的余数。
尺寸判断
表达式1 表达式2
如果expr1大于expr2,则返回1,否则返回0。如果expr1和expr2都是数字,则用数字判断,否则用文字判断。以下都一样。
表达式1 表达式2
如果expr1小于expr2,则返回1,否则返回0。
expr1=expr2
如果expr1等于expr2,则返回1,否则返回0。
expr1!=expr2
如果expr1不等于expr2,则返回1,否则返回0。
表达式1 =表达式2
如果expr1大于或等于expr2,则返回1,否则返回0。
表达式1 =表达式2
如果expr1小于或等于expr2,则返回1,否则返回0。
文字处理
表达式1:表达式2
比较一个固定的字符串,也就是正则表达式。您可以使用以下字符进行辅助:匹配一个字符。
$查找字符串的结尾。
[list]查找列表中的任意字符串。
*在*前查找0个或更多单词。
()返回括号中的匹配字符串。3.浮点运算
复制代码如下:$ expr 5.0-4 expr:非整数参数$ echo $ ((5.0-4))-bash: 5.0-4:表达式中的语法错误(错误标记为 . 0-4 )
从上面的运算结果来看,上面的表达式似乎不足以支持浮点运算。查阅资料后,我们发现bash不支持浮点运算。如果需要浮点运算,就需要BC和awk。
方法1:
复制代码如下:[程默@ centos 5 ~]$ c=$(echo 5.01-4 * 2.0 | BC)[程默@ centos5 ~] $ echo $ c-2.99
方法二:
复制代码如下:[程默@ centos 5 ~]$ c=$(awk begin { print 7.01 * 5-4.01 } )[程默@ centos5 ~] $ echo $ c31.04
注意:$()相当于shell中的```。包括中间命令语句的执行,并返回执行结果。