1. 程式人生 > >shell的隨機數

shell的隨機數

grep 數字遊戲 exp while 變量 rep 默認 roo random

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

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

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

產生0~1之間的隨機數

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

產生0~2的隨機數

[[email protected] 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之間的隨機數

[[email protected] 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之間的隨機數

[[email protected] 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

產生三位數的隨機數

[[email protected] 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 "砸蛋"

shell的隨機數