Shell脚本笔记(三)shell中的数学计算
shell中的數(shù)學(xué)計(jì)算
一、使用方括號(hào)
#!/bin/bash a=10 b=29 c=88res=$[$a * ($c-$b)] echo $res二、使用(())
echo $((1+9)) ((i=1+2)) b=$((9-2*2))echo $((a+=1)) echo $((a**2)) #計(jì)算a的平方 echo $((8<9)) #輸出1 echo $((i++)) echo $((RANDOM%61)) #產(chǎn)生一個(gè)不大于60的隨機(jī)數(shù)三、bc的用法
bc技術(shù)器實(shí)際上是一種編程語(yǔ)言,它可以識(shí)別:
數(shù)字(整數(shù)和浮點(diǎn)數(shù))
變量(簡(jiǎn)單變量和數(shù)組)
注釋(以#或C語(yǔ)言中的/* */開(kāi)始的行)
表達(dá)式
編程語(yǔ)句(例如if-then語(yǔ)句)
函數(shù)
浮點(diǎn)運(yùn)算是由內(nèi)建變量scale控制的。必須將這個(gè)值設(shè)置為你希望在計(jì)算結(jié)果中保留的小數(shù)
位數(shù),否則無(wú)法得到期望的結(jié)果。
bc還能支持變量:
$ bc -q var1=10 var1 * 4 40 var2 = var1 / 5 print var2 2 quit $腳本中使用bc:
方式一:
variable=$(echo "options; expression" | bc)
實(shí)例:
#!/bin/bash var1=$(echo "scale=4; 3.44 / 5" | bc) echo The answer is $var1方式二,使用內(nèi)聯(lián)輸入,格式:
variable=$(bc << EOF
options
statements
expressions
EOF
)
?三、Shell中產(chǎn)生隨機(jī)數(shù)的方法
1)通過(guò)系統(tǒng)變量RANDOM
#范圍:0~3267,因此用于加密時(shí)加密性不太好 echo $RANDOM2)通過(guò)openssl產(chǎn)生隨機(jī)字符串
openssl rand -base64 83)通過(guò)date產(chǎn)生
date +%s%N4)通過(guò)/dev/urandom配合chksum
head /dev/urandom|cksum四、常見(jiàn)用法
expr $a + 1 &> /dev/null #判斷是否為數(shù)字的方法 RA=$? expr $b + 2 &> /dev/null RB=$? if [ $RA -ne 0 -o $RB -ne 0 ];thenecho 'one of the input is not num!!!!'exit 1 fi?
轉(zhuǎn)載于:https://www.cnblogs.com/Shadowplay/p/8310290.html
總結(jié)
以上是生活随笔為你收集整理的Shell脚本笔记(三)shell中的数学计算的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: jsp: jstl标签库 uri标签
- 下一篇: tensorflwo-gpu win10