shell 算术运算

    Bash shell 环境可以执行基本的算术运算利用一些命令如 let、(()),以及[]。expr 和 bc 这两个工具在执行高级操作时也很有用。

    let 命令可以被用于直接执行基本操作,在使用 let 时,用变量名就行了,不用带 $ 前缀。例如:

#!/bin/bash

no1=4;

no2=5;

let result=no1+no2

echo $result

递增操作:let no1++

递减操作:let no1--

简写:let no+=6

let no-=6

[] 操作符也可像 let 命令那样:result=$[ no1 + no2],在[]里面使用 $ 前缀是合法的,例如:

result=$[ $no1 + 5]

当用的是(())操作符,就用 $变量名 这种格式。如:result=$(( no1 + 50))

expr 也可用于基本操作:

result=`expr 3 + 4`

result=$(expr $no1 + 5)

前面这些方法都不支持浮点数,只能在整数上操作。

bc,精确计算器,是一个高级同居用于算术操作。它有很多选项。我们可以执行浮点操作,并使用高级函数,例如:

echo "4 * 0.56" | bc

2.24

no=54; 

result=`echo "$no * 1.5" | bc`

echo $result

81.0

Additional parameters can be passed to bc with prefixes to the operation with 

semicolon as delimiters through stdin.

  Decimal places scale with bc: In the following example the scale=2 

parameter sets the number of decimal places to 2. Hence, the output  

of bc will contain a number with two decimal places:

  echo "scale=2;3/8" | bc

  0.37

Base conversion with bc: We can convert from one base number system to 

another one. Let us convert from decimal to binary, and binary to octal:

  #!/bin/bash

  Desc: Number conversion

  no=100

  echo "obase=2;$no" | bc

  1100100

  no=1100100

  echo "obase=10;ibase=2;$no" | bc

  100

  Calculating squares and square roots can be done as follows:

  echo "sqrt(100)" | bc #Square root

  echo "10^10" | bc #Square

相关推荐