运算命令: (()) 用于整数运算的常用运算符 ((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