码迷,mamicode.com
首页 > 系统相关 > 详细

shell脚本--数值计算

时间:2018-01-07 23:29:16      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:shell   执行   反引号   空格   highlight   输出   ubuntu   出错   pos   

原生bash不支持简单的数学运算

初学的时候,可以使用$(())和expr来实现

  使用$(())来实现:

#!/bin/bash
#文件名:test.sh

echo $((1+3))

#命令行第2个参数和第3个参数求和
#此时+号两边可以不用加空格
echo $(($1+$2))
echo $(($1 + $2))

echo $(($1-$2))
echo $(($1*$2)) #此时不用对*转义
echo $(($1/$2))
echo $(($1%$2))

  执行脚本:

ubuntu@ubuntu:~$ ./test.sh 10 20
4
30
30
-10
200
0
10
ubuntu@ubuntu:~$ 

  

 使用expr实现:

#!/bin/bash
#文件名:test.sh

#expr是一个用于数值计算的命令
#此时运算符号两边必须加空格,不加空格会原样输出,不会计算
expr 1 + 3

#命令行第2个参数和第3个参数求和
expr $1 + $2
expr $1 - $2
expr $1 * $2    #失败
expr $1 \* $2   #因为乘号*在shell中有特殊的含义,所以要转义
expr $1 / $2    #除法取商
expr $1 % $2    #除法取模

  运行脚本:

ubuntu@ubuntu:~$ ./test.sh 10 20
4
30
-10
expr: syntax error
200
0
10
ubuntu@ubuntu:~$ 

  

  使用expr之前先了解一下反引号``的功能,反引号的功能是将反引号括起来的内容执行,没错,就是执行,这就意味着,反引号括起来的是一条命令,并且反引号不能单独使用,要将包含反引号及其括起来的语句赋值给一个变量,否则出错;如果不想将其赋给一个变量,就不要用反引号,直接写反引号中的内容,因为其内容就是一条命令。

#!/bin/bash
#文件名:test.sh

#此时运算符号两边必须加空格
#必须将反引号中命令的结果赋给一个变量
num=`expr 1 + 3`
echo $num

#命令行第2个参数和第3个参数求和
num=`expr $1 + $2`
echo $num

#乘法运算符仍要转义
num=`expr $1 \* $2`
echo $num

  运行脚本:

ubuntu@ubuntu:~$ ./test.sh 10 20
4
30
200
ubuntu@ubuntu:~$ 

  

shell脚本--数值计算

标签:shell   执行   反引号   空格   highlight   输出   ubuntu   出错   pos   

原文地址:https://www.cnblogs.com/-beyond/p/8232496.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!