在 linux 的 shell 脚本里,变量默认都是字符串的。以下面的脚本为例:
#!/bin/bash
no1=4
no2=5
如果你直接使用“+”符号
result=$no1 + $no2
echo $result
得到的结果不是 9,而是 "45" 字符串。这就是 shell 脚本中变量默认为字符串导致的结果。
int 型运算
那么如何使得这两个变量以 int 的值相加呢,有以下几种方法:
(1)使用 let 关键字
let no1++
(2) 使用 [] 操作符
result=$[ no1 + no2 ] 或者 result=$[ $no1 + 5 ]
(3) 使用 ( ( ) )
result=$(( no1 + 5 ))
double 运算
以上的这些操作都是针对 int 型而已,要想对 double 型进行运算,就得使用 bc 关键字。比如
echo "4 * 0.56" | bc
2.24
no=54
result= `echo "$no * 5" | bc`
echo $result
81.0
- 指定精确的位数(scale)
0.37
- 进制间的转换,比如二进制转换成十进制
#!/bin/bash
no=100
echo "obase=2;$no" | bc
1100100
no=1100100
echo "obase=10;ibase=2;$no" | bc
100
- 计算平方 和 去平方
echo "10 ^ 10" | bc