[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
(本頁面已被瀏覽過 2,376 次)