Sto cercando di stampare una n
lettera casuale , in cui inserisco n
dalla stessa riga di comando, ma per qualche ragione il mio script mi dà la stessa risposta ogni volta che uso lo stesso valore per n
.
#!/bin/bash
num=$1
egrep "^.{$num}$" /usr/share/dict/words | head -n $RANDOM| tail -n 1
Sto chiamando la mia sceneggiatura come:
$ bash var3.sh 5
étude # always the same output when using 5
$ bash var3.sh 3
zoo # always the same output when using 3
dov'è var3.sh
il nome della mia sceneggiatura e 5 è la lunghezza della parola che voglio stampare in modo casuale.
Come ottengo per stampare una parola veramente casuale?
shuf
o sort -R
come suggerito nelle risposte. Puoi anche usare $RANDOM
, ma in modo più avanzato. Tutti questi strumenti producono risultati che possono essere previsti (non sono realmente casuali), ma sono veloci e abbastanza buoni per molti scopi.
$RANDOM
è molto probabile che sia maggiore del numero di parole n- letter per la maggior parte dei valori di n (il 95,7% delle volte per n = 3 per me).