Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-Bash-random数字_Python_Bash_Random - Fatal编程技术网

Python-Bash-random数字

Python-Bash-random数字,python,bash,random,Python,Bash,Random,给定包含以下内容的脚本“random.sh”: #!/bin/bash RANDOM=`python -v -d -S -c "import random; print random.randrange(500, 800)"` echo $RANDOM 运行此命令将生成给定范围之外的随机数: [root@localhost nms]# ./random.sh 23031 [root@localhost nms]# ./random.sh 9276 [root@localhost nms]#

给定包含以下内容的脚本“random.sh”:

#!/bin/bash

RANDOM=`python -v -d -S -c "import random; print random.randrange(500, 800)"`
echo $RANDOM
运行此命令将生成给定范围之外的随机数

[root@localhost nms]# ./random.sh
23031
[root@localhost nms]# ./random.sh
9276
[root@localhost nms]# ./random.sh
10996
将随机变量重命名为RAND,将给出给定范围内的随机数,即

#!/bin/bash

RAND=`python -v -d -S -c "import random; print random.randrange(500, 800)"`
echo $RAND
给出:

[root@localhost nms]# ./random.sh
671
[root@localhost nms]# ./random.sh
683
[root@localhost nms]# ./random.sh
537

我的问题是——为什么?:)

RANDOM是一个预定义的bash变量。从手册页:

RANDOM每次引用此参数时,在
生成0和32767。随机数的序列可以是
通过将值赋给RANDOM来初始化。如果未设置RANDOM,
它失去了它的特殊属性,即使它随后
重置。
因此,如果确实要使用随机变量名,请执行以下操作:

unset RANDOM
RANDOM=`..您的脚本`
是一个内部
bash
函数,它返回一个0-32767范围内的伪随机整数


因此,在第一个示例中,您看到的是由
bash
生成的随机数,而不是由Python脚本生成的随机数。当您分配给
RANDOM
时,您只是在播种
bash
的随机数生成器。

$RANDOM是bash中预定义的变量

打开一个新终端并尝试:

> echo $RANDOM
6007
> echo $RANDOM
122211

注意:我添加了-v-d标志以进一步调试它,没有任何运气。没有它们的结果是一样的。。。当然我太专注于调试python端,以至于忘记了bash端。谢谢你,约翰。