在bash脚本中运行random命令

时间:2014-06-28 09:50:14

标签: linux bash random

我想在bash脚本中随机选择一个随机命令。

我尝试过像

这样的命令

echo $(( $RANDOM % 12 ))

但它们在UNIX命令行中工作,但不在我的bash脚本中。

任何人都有解决我问题的方法吗?

2 个答案:

答案 0 :(得分:2)

- 根据评论中的讨论更新答案 -

对于Bash用户:

  

有问题的代码工作正常。只是不要忘记将权限设置为+ x(授予所有人可执行权限)。例如:chmod +x myscript.sh

     

警告:不要将RANDOM设置为值。它失去了它的特殊属性。

     

Bash手册页说 -

     
    

RANDOM每次引用此参数时,都是一个随机整数     生成0到32767之间。随机数序列可以     通过为RANDOM赋值来初始化。如果没有设置RANDOM,那就是     失去其特殊属性,即使它随后被重置。

  

对于短划线用户:

  ubuntu中的

是破折号的符号链接。   破折号不支持RANDOM变量,它只是另一个变量。

     

如果您必须使用sh,则可以使用日期函数进行生成   伪随机数,仅当您的脚本不依赖于时间时。 (如果你的   脚本以严格的时间间隔运行,它可能产生相同的值)

RANDOM=`date '+%s'`
echo $(( $RANDOM % 12 )) # To generate random numbers less than 12

一般情况:

如果要生成真正的随机数,请使用此 -

dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" "

来源:http://www.linuxquestions.org/questions/programming-9/shell-script-random-variable-4088/

答案 1 :(得分:1)

创建shell脚本test.sh

chmod +x test.sh

test.sh的内容

#!/bin/bash
echo $(( $RANDOM % 12 ))

通过

运行
bash test.sh

./test.sh