[Linux] 在 shell script 中產生亂數

[Linux] 在 shell script 中產生亂數

今天需要在 Shell script 裡面取得一個變數,

查了一下也很簡單,用 $RANDOM 變數就可以拿到一個 0~32767 間的亂數:

testuser@localhost ~ $ echo $RANDOM
23145

testuser@localhost ~ $ echo $RANDOM
16894

testuser@localhost ~ $ echo $RANDOM
7110

 

如果想要取像是 0~99 之間的亂數的話,

可以用 % 這個餘數運算子,例如:

testuser@localhost ~ $ echo $((RANDOM % 100))
75

testuser@localhost ~ $ echo $((RANDOM % 100))
40

testuser@localhost ~ $ echo $((RANDOM % 100))
88

 

這個算式也可以再變得複雜一點。

像是我想要取 30~90 分之間的「秒數」,

那就可以先用餘數運算子取得 0~60 間的數字,

加上 30 後就會是 30~90 間,再乘以 60 秒,例如:

testuser@localhost ~ $ echo $(((RANDOM % 60 + 30)*60))
2040

testuser@localhost ~ $ echo $(((RANDOM % 60 + 30)*60))
4920

testuser@localhost ~ $ echo $(((RANDOM % 60 + 30)*60))
1920

 

參考資料:Generating Random Numbers in Linux Shell Scripting – Eduonix Blog

(本頁面已被瀏覽過 17 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料