我试图打印一个随机n
字母词,n
从命令行本身输入,但是由于某种原因,每次使用相同的值时,我的脚本都会给我相同的答案n
。
#!/bin/bash
num=$1
egrep "^.{$num}$" /usr/share/dict/words | head -n $RANDOM| tail -n 1
我称我的脚本为:
$ bash var3.sh 5
étude # always the same output when using 5
$ bash var3.sh 3
zoo # always the same output when using 3
var3.sh
我的脚本的名称在哪里,我要随机打印的单词的长度为5。
如何获得一个真正随机的单词?
您是否要完全打印一个随机单词,即使它不是单词或从dict随机打印它?
—
iZodiac
如果您的任务与安全性有关(例如,创建密码),则应使用为该任务制造的工具。否则,可以使用
—
sudodus
shuf
或sort -R
按照答案中的建议进行操作。您也可以使用$RANDOM
,但使用更高级的方式。所有这些工具都会产生可以预测的结果(它们并不是真正随机的),但是它们对于许多目的而言都是快速且足够好的。
$RANDOM
对于大多数n值,它很可能大于n个字母的单词数(对我来说,n = 3 的时间是95.7%)。