日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Shell脚本笔记(三)shell中的数学计算

發(fā)布時(shí)間:2025/7/14 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell脚本笔记(三)shell中的数学计算 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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 -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)

實(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
)

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中產(chǎn)生隨機(jī)數(shù)的方法

1)通過(guò)系統(tǒng)變量RANDOM

#范圍:0~3267,因此用于加密時(shí)加密性不太好 echo $RANDOM

2)通過(guò)openssl產(chǎn)生隨機(jī)字符串

openssl rand -base64 8

3)通過(guò)date產(chǎn)生

date +%s%N

4)通過(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。