shell的隨機數


bash默認有一個$RANDOM的變量, 默認范圍是0~32767.

使用set|grep RANDOM查看上一次產生的隨機數

[root@server shell02]# echo $RANDOM
15832
[root@server shell02]# set |grep RANDOM
RANDOM=15832
[root@server shell02]#

產生0~1之間的隨機數

[root@server shell02]# echo $[$RANDOM%2]
0
[root@server shell02]# echo $[$RANDOM%2]
0
[root@server shell02]# echo $[$RANDOM%2]
1

產生0~2的隨機數

[root@server shell02]# echo $[$RANDOM%3]
1
[root@server shell02]# echo $[$RANDOM%3]
2
[root@server shell02]# echo $[$RANDOM%3]
1
[root@server shell02]# echo $[$RANDOM%3]
2
[root@server shell02]#

產生1~2之間的隨機數

[root@server shell02]# echo $[$RANDOM%2+1]
1
[root@server shell02]# echo $[$RANDOM%2+1]
2
[root@server shell02]# echo $[$RANDOM%2+1]
1
[root@server shell02]# echo $[$RANDOM%2+1]
2

產生50~100之間的隨機數

[root@server shell02]# echo $[$RANDOM%51+50]
63
[root@server shell02]# echo $[$RANDOM%51+50]
90
[root@server shell02]# echo $[$RANDOM%51+50]
77
[root@server shell02]# echo $[$RANDOM%51+50]
88

產生三位數的隨機數

[root@server shell02]# echo $[$RANDOM%900+100]
713
[root@server shell02]# echo $[$RANDOM%900+100]
686
[root@server shell02]# echo $[$RANDOM%900+100]
474
[root@server shell02]# echo $[$RANDOM%900+100]
202

總結一下

產生一個n~m范圍內的隨機數

使用$RANDOM取余m-n+1,之后加上n就可以了

 猜數字游戲

#!/bin/bash

echo "猜一個1-100的整數,猜對砸蛋:" 

num=$[$RANDOM%100+1]

while true
do
    read -p "請猜:" gnum
    if [ $gnum -gt $num ];then
        echo "大了"
    elif [ $gnum -lt $num ];then
        echo "小了"
    else    
        echo "對了"
        break
    fi
done

echo "砸蛋"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM