LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 725|回复: 3

请教一个新手问题

[复制链接]
发表于 2005-4-11 11:30:35 | 显示全部楼层 |阅读模式
  1. #!/bin/ksh
  2. RANDOM=29
  3. UPPER_LIMIT=$1
  4. RANDOM_NUMBER=$(($RANDOM % $UPPER_LIMIT + 1))
  5. echo "$RANDOM_NUMBER"
  6. echo $RANDOM
复制代码

很奇怪,用命令ksh 1.ksh 30 ,得到的输出是
  1. [root@localhost test]# ksh 1.ksh 30
  2. 19
  3. 1673
复制代码


怎么$RANDOM 会变成1673,就算是1673,取余数再加1也不是19阿。。
发表于 2005-4-11 13:17:32 | 显示全部楼层
$RANDOM 是SHELL的保留的变量,而不是你的(29),它是指随机产生一个数,所以这里
第一个$RAMDOM (用来计算的),不是29,也不是后来的1673(再次调用$RAMDOM产生了新的随机数)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-11 14:22:28 | 显示全部楼层
但是,每次执行程序,结果都是19,1673,如果$RANDOM调用时产生随机数,程序结果应该不一样才对。。。
回复 支持 反对

使用道具 举报

发表于 2005-4-11 16:22:20 | 显示全部楼层
Post by lksj
但是,每次执行程序,结果都是19,1673,如果$RANDOM调用时产生随机数,程序结果应该不一样才对。。。


可以在shell下试一下
RANDOM=29后
echo $RANDOM
总是相同的输出结果
可能是生成随机数时使用了相同的种子吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表