首页 > 应用开发 > IT综合 > Shell下的数字比较及计算
| 比较: 方法一: if [ ${A} -lt ${B} ]; then … 这是最基本的比较方法,使用lt(小于),gt(大于),le(小于等于),ge(大于等于),优点:还没发现;缺点:只能比较整数,使用lt,gt等不直观 方法二: if ((${A} < ${B})) then … 这是CShell风格比较,优点:不用使用lt,gt等难记的字符串;缺点:还是只能比较整数 方法三: if (echo ${A} ${B} | awk ‘!($1>$2){exit 1}’) then … 这是使用awk比较,优点:可以比较小数;缺点:表达式太复杂,难记 方法四: if (echo ${A} – ${B} | bc -q | grep -q “^-”); then … 这是使用bc计算比较,优点:可以比较小数;缺点:表达式更复杂,难记 计算: 方法一:typeset C=$(expr ${A} + ${B}); SHELL中的基本工具,优点:方便检测变量是否为数字;缺点:只能计算整数,且只能计算加减法,不能计算乘除法 方法二:let “C=${A}+${B}”; 或 let “C=A+B” 内嵌命令计算,优点:能计算乘除法及位运算等;缺点:只能计算整数 方法三:typeset C=$((A+B)) CShell风格的计算,优点:能计算乘除法及位运算等,简介,编写方便;缺点:不能计算小数 方法四:typeset C=${echo ${A} ${B} | awk ‘{print $1+$2}’) 使用awk计算,优点:能计算小数,可以实现多种计算方式,计算灵活;缺点:表达式太复杂 方法五:typeset C=${echo ${A} + ${B} | bc -q) 使用awk计算,优点:能计算小数,计算方式比awk还多,计算灵活;缺点:表达式太复杂,小数点后面的位数必须使用scale=N来设置,否则可能会将结果截断为整数 |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24790158/viewspace-1040140/ ,如需转载,请注明出处,否则将追究法律责任。