Tam*_*mas 3 python random bash
给定一个脚本'random.sh',其中包含以下内容:
#!/bin/bash
RANDOM=`python -v -d -S -c "import random; print random.randrange(500, 800)"`
echo $RANDOM
Run Code Online (Sandbox Code Playgroud)
运行它会产生给定范围之外的随机数:
[root@localhost nms]# ./random.sh
23031
[root@localhost nms]# ./random.sh
9276
[root@localhost nms]# ./random.sh
10996
Run Code Online (Sandbox Code Playgroud)
将RANDOM变量重命名为RAND,给出了给定范围内的随机数,即
#!/bin/bash
RAND=`python -v -d -S -c "import random; print random.randrange(500, 800)"`
echo $RAND
Run Code Online (Sandbox Code Playgroud)
得到:
[root@localhost nms]# ./random.sh
671
[root@localhost nms]# ./random.sh
683
[root@localhost nms]# ./random.sh
537
Run Code Online (Sandbox Code Playgroud)
我的问题是 - 为什么?:)
RANDOM是一个预定义的bash变量.从联机帮助页:
RANDOM Each time this parameter is referenced, a random integer between
0 and 32767 is generated. The sequence of random numbers may be
initialized by assigning a value to RANDOM. If RANDOM is unset,
it loses its special properties, even if it is subsequently
reset.
Run Code Online (Sandbox Code Playgroud)
因此,如果您真的想使用RANDOM变量名,请执行以下操作:
unset RANDOM
RANDOM=`..your script..`
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
846 次 |
| 最近记录: |