设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 综合讨论区 —— LinuxSir.cn
›
shell进阶应用、shell编程
›
请教一个新手问题
返回列表
查看:
725
|
回复:
3
请教一个新手问题
[复制链接]
lksj
lksj
当前离线
积分
228
IP卡
狗仔卡
发表于 2005-4-11 11:30:35
|
显示全部楼层
|
阅读模式
#!/bin/ksh
RANDOM=29
UPPER_LIMIT=$1
RANDOM_NUMBER=$(($RANDOM % $UPPER_LIMIT + 1))
echo "$RANDOM_NUMBER"
echo $RANDOM
复制代码
很奇怪,用命令ksh 1.ksh 30 ,得到的输出是
[root@localhost test]# ksh 1.ksh 30
19
1673
复制代码
怎么$RANDOM 会变成1673,就算是1673,取余数再加1也不是19阿。。
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
弥敦路九号
弥敦路九号
当前离线
积分
1139
IP卡
狗仔卡
发表于 2005-4-11 13:17:32
|
显示全部楼层
$RANDOM 是SHELL的保留的变量,而不是你的(29),它是指随机产生一个数,所以这里
第一个$RAMDOM (用来计算的),不是29,也不是后来的1673(再次调用$RAMDOM产生了新的随机数)
回复
支持
反对
使用道具
举报
显身卡
lksj
lksj
当前离线
积分
228
IP卡
狗仔卡
楼主
|
发表于 2005-4-11 14:22:28
|
显示全部楼层
但是,每次执行程序,结果都是19,1673,如果$RANDOM调用时产生随机数,程序结果应该不一样才对。。。
回复
支持
反对
使用道具
举报
显身卡
yolan
yolan
当前离线
积分
1
IP卡
狗仔卡
发表于 2005-4-11 16:22:20
|
显示全部楼层
Post by
lksj
但是,每次执行程序,结果都是19,1673,如果$RANDOM调用时产生随机数,程序结果应该不一样才对。。。
可以在shell下试一下
RANDOM=29后
echo $RANDOM
总是相同的输出结果
可能是生成随机数时使用了相同的种子吧
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
服务器架设、应用、维护
Debian Linux
Archlinux讨论区
开源软件专题讨论
硬件设备 Linux 驱动
Ubuntu Linux 专题讨论
Mandriva Linux
Linux 输入开发与研究
Gentoo Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表