bash默認有一個$RANDOM的變量, 默認范圍是0~32767.
[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 "砸蛋"