运算命令:
(()) 用于整数运算的常用运算符
((i+1)) 用echo $((i=i+1))输出其值
i=$((i+1)) 将表达式运算后的值付给i
((8>7&&5==5)) 进行比较操作,用于条件判断
echo $((2+1)) 直接输出计算结果
[root加quan油 SH]$a=9
[root加quan油 SH]$echo $((a++))
9
[root加quan油 SH]$echo $a
10
[root加quan油 SH]$echo $((++a))
11
[root加quan油 SH]$echo $a
11
注意:echo $((a++)) echo $((a--)) 显示运算前的值,即a的值
echo $((--a)) echo $((++a)) 显示的是运算后的值
在(())使用变量时可以忽略变量前的$ echo $((my+1))
expr用法:expr(evaluate(求值) expression(表达式))
既可以运算整数,也可以用于字符串长度,匹配等处理
注意: 计算时,运算符和数字之间都需要空格
乘号要反斜线转义
*eg:expr 9 + 1
i=`expr 9 + 1`
i=`expr $i + 1`变量需要用反引号括起
*
判断一个变量值或字符串是否为整数
原理:利用expr计算时变量或字符串必须为整数的规则,把变量和一个整数(非零)
相加,判断命令返回是否为0,0——成功为整数
#!/bin/bash
expr $1 + 1 &> /dev/null
if [ $? -ne 0 ];then
echo "char"
else
echo "int"
fi
判断扩展名是否符合要求 注意运算的时候都要加空格
*#!/bin/bash
if expr "$1" : "..sh" &>/dev/null
then
echo "thie name is right"
else
echo "you must rename to $1.sh"
fi
通过expr计算字符串的长度
#!/bin/bash
for N in quan zhi qiang
do
if [ expr length $N
-le 4 ]
then
echo $N
fi
done**
bc 交互式计算,命令行计算
**echo 9+9|bc
echo `seq -s "+" 10`=`seq -s "+" 10|bc`**(其中seq为生成数字序列 -s 分隔符)
**1+2+3+4+5+6+7+8+9+10=55**
awk 计算小数很准确
**echo "9.9 9.8"|awk '{print (($1-3)*$2)}'
67.62**
转载于:https://blog.51cto.com/14240011/2362726