在shell中有一个环境变量RANDOM,它的范围是0--32767 如果我们想要产生0-25范围内的数,如何做呢?如下: expr $RANDOM % 26用这个环境变量对26取模,就可以得到最小是0,最大是25的数了 如果想得到1--68范围内的数,可以这样 expr $RANDOM % 68 + 1前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。 如果想得到6--87范围内的数。可以这样 expr $RANDOM % 82 + 6前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了 原理,对数n取余,余应为0---(n-1)范围 产生指定范围的随机数 #!/bin/bash #日期函数生成随机数向最大值和最小值的差加1后取余得到一个随机数,然后加上最小值保证能取到的最小值和最大值 read -p "请输入起始数:" min read -p "请输入终止数:" max if [ $min -gt $max ];then echo "起始数大于终止数!" else echo -n "随机数:" ;expr $(date +%N) % $[$max - $min + 1] + $min fi