Ich versuche, ein zufälliges n
Buchstabenwort zu drucken , das ich n
über die Befehlszeile selbst eingebe, aber aus irgendeinem Grund gibt mir mein Skript jedes Mal die gleiche Antwort, wenn ich den gleichen Wert für verwende n
.
#!/bin/bash
num=$1
egrep "^.{$num}$" /usr/share/dict/words | head -n $RANDOM| tail -n 1
Ich rufe mein Skript wie folgt auf:
$ bash var3.sh 5
étude # always the same output when using 5
$ bash var3.sh 3
zoo # always the same output when using 3
Wo var3.sh
ist der Name meines Skripts und 5 ist die Länge des Wortes, das ich zufällig drucken möchte.
Wie kann ich ein wirklich zufälliges Wort drucken?
shuf
oder sort -R
wie in den Antworten vorgeschlagen zu verwenden. Sie können auch verwenden $RANDOM
, jedoch auf fortgeschrittenere Weise. Alle diese Tools liefern vorhersagbare Ergebnisse (sie sind nicht wirklich zufällig), aber sie sind schnell und für viele Zwecke gut genug.
$RANDOM
ist ziemlich wahrscheinlich größer als die Anzahl der n- Buchstaben-Wörter für die meisten Werte von n (95,7% der Zeit für n = 3 für mich).