Linux shell 脚本中变量的数学计算【转】

时间:2023-03-09 17:54:21
Linux shell 脚本中变量的数学计算【转】

本文转载自:http://blog.csdn.net/qinghezhen/article/details/9194287

首先从一个例子说起:

  1. x=1+1
  2. echo $x

你是不是期待着输出2啊?让你失望了,这样输出的结果是1+1。Linux shell 脚本中变量的数学计算【转】为什么呢?Linux shell 脚本中变量的数学计算【转】这是因为在shell script中变量类型默认为“字符串”,所以若不指定变量类型,1+1是一个“字符串”而不是“计算式”。Linux shell 脚本中变量的数学计算【转】那么怎么得到我们想要的结果呢?Linux shell 脚本中变量的数学计算【转】方法很多,但是总结起来就是两种,一种就是生命变量的类型。另一种是对特定的计算式进行处理。

1)首先看第一类方法:声明变量的类型

我对上述程序做出以下修改:

  1. declare -i x
  2. x=1+1
  3. echo $x

在上述脚本中我把x声明为整型数字(integer)类型,这时输出结果为2

或者你可以这么写:

  1. declare -i x
  2. declare -i y
  3. x=1
  4. y=2
  5. x=$x+$y
  6. echo $x

输出结果为3,假如我没有声明 x, y 的类型为整型数字,那么输出结果是1+2

2)

a)使用let命令:(注意的是let仅支持整数运算)

  1. let 'x=1+1'
  2. echo $x

这时输出结果为2

b)使用$[ ]

  1. x=1
  2. y=2
  3. x=$[ x+y]
  4. echo $x

输出结果为:3

这里要注意的是注意:

  • $[]将中括号内的表达式作为数学运算先计算结果再输出
  • 对$[]中的变量进行访问时加不加$无所谓
  • $[]支持的运算符与let相同,但也只支持整数运算

c)使用$(( ))

  1. x=1
  2. y=2
  3. x=$(( x+y))
  4. echo $x

输出结果是3