コマンドライン自体から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は私がランダムに印刷したい単語の長さです。
どうすれば本当にランダムな単語を印刷できますか?
ランダムな単語を完全に印刷しようとしていますか。たとえ単語でなくても、辞書からランダムに印刷しますか?
—
iZodiac
タスクがセキュリティに関連している場合(パスワードの作成など)、そのタスク用に作成されたツールを使用する必要があります。それ以外の場合は、
—
sudodus
shuf
またはsort -R
回答で提案されているとおりに使用できます。も使用できますが$RANDOM
、より高度な方法で使用できます。これらのツールはすべて、予測可能な結果を生成しますが(実際にはランダムではありません)、高速で多くの目的に十分対応できます。
$RANDOM
かなり可能性が高いの数よりも大きいことがあるのnのほとんどの値について-letter言葉のn(95.7時間の%nは私のために= 3)。