Shell脚本笔记shell中的数学计算
Posted Shadowplay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本笔记shell中的数学计算相关的知识,希望对你有一定的参考价值。
shell中的数学计算
一、使用方括号
#!/bin/bash a=10 b=29 c=88 res=$[$a * ($c-$b)] echo $res
二、使用(())
echo $((1+9)) ((i=1+2)) b=$((9-2*2)) echo $((a+=1)) echo $((a**2)) #计算a的平方 echo $((8<9)) #输出1 echo $((i++)) echo $((RANDOM%61)) #产生一个不大于60的随机数
三、bc的用法
bc技术器实际上是一种编程语言,它可以识别:
数字(整数和浮点数)
变量(简单变量和数组)
注释(以#或C语言中的/* */开始的行)
表达式
编程语句(例如if-then语句)
函数
浮点运算是由内建变量scale控制的。必须将这个值设置为你希望在计算结果中保留的小数
位数,否则无法得到期望的结果。
$ bc -q 3.44 / 5 0 scale=4 3.44 / 5 .6880 quit $
bc还能支持变量:
$ bc -q var1=10 var1 * 4 40 var2 = var1 / 5 print var2 2 quit $
脚本中使用bc:
方式一:
variable=$(echo "options; expression" | bc)
实例:
#!/bin/bash var1=$(echo "scale=4; 3.44 / 5" | bc) echo The answer is $var1
方式二,使用内联输入,格式:
variable=$(bc << EOF
options
statements
expressions
EOF
)
var1=10.46 var2=43.67 var3=33.2 var4=71 var5=$(bc << EOF scale = 4 a1 = ( $var1 * $var2) b1 = ($var3 * $var4) a1 + b1 EOF )
三、Shell中产生随机数的方法
1)通过系统变量RANDOM
#范围:0~3267,因此用于加密时加密性不太好 echo $RANDOM
2)通过openssl产生随机字符串
openssl rand -base64 8
3)通过date产生
date +%s%N
4)通过/dev/urandom配合chksum
head /dev/urandom|cksum
四、常见用法
expr $a + 1 &> /dev/null #判断是否为数字的方法 RA=$? expr $b + 2 &> /dev/null RB=$? if [ $RA -ne 0 -o $RB -ne 0 ];then echo \'one of the input is not num!!!!\' exit 1 fi
以上是关于Shell脚本笔记shell中的数学计算的主要内容,如果未能解决你的问题,请参考以下文章