我想在bash脚本中随机选择一个随机命令。
我尝试过像
这样的命令 echo $(( $RANDOM % 12 ))
但它们在UNIX命令行中工作,但不在我的bash脚本中。
任何人都有解决我问题的方法吗?
答案 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