Generare un numero casuale in bash

Generare un numero casuale in bash
Il numero che viene modificato in ciascuna esecuzione dello script è chiamato numero casuale ed è imprevedibile. I numeri casuali vengono utilizzati nella programmazione per vari scopi, come i dati di test, la generazione di biglietti della lotteria, la generazione di una password, ecc. Il numero intero o il numero mobile possono essere utilizzati per generare un numero casuale in bash. Il numero casuale di un intervallo specifico o una dimensione può essere generato utilizzando uno script bash. In questo tutorial sono stati mostrati diversi modi per generare numeri casuali in bash.

Uso del generatore casuale:

Il numero casuale o un intervallo di numeri casuali possono essere generati usando la variabile $ casuali. Genera un numero casuale tra 0 e 32767 per impostazione predefinita. Ma puoi impostare l'intervallo di numeri per generare numeri casuali dividendo il valore di $ casuale con un valore specifico. Usi diversi della variabile $ casuali per generare numeri casuali sono mostrati nella parte successiva del tutorial.

Generazione di numeri casuali usando $ variabile casuale:

I modi per generare il numero casuale nel terminale ed eseguire un file di script sono mostrati qui.

UN. Generare numeri casuali dal terminale

Esegui il comando seguente per generare un numero casuale nell'intervallo da 0 a 32767.

$ echo $ casuale

Puoi generare un numero casuale di un intervallo specifico dividendo la variabile $ casuali con un valore particolare e ottenendo il valore del resto. Esegui il comando seguente per generare un numero casuale nell'intervallo da 1 a 50. Qui sono state utilizzate doppie prime staffe con $.

$ echo $ (($ casual % 50 + 1))

Esegui il comando seguente per generare un numero casuale nell'intervallo da 10 a 40. Qui, la terza fascia con $ è stata utilizzata.

$ echo $ [$ casuale % 40 + 10]

B. Generare numeri casuali usando lo script

Crea un file bash con il seguente script per generare un numero casuale dell'intervallo specifico in cui i valori di intervallo minimo e massimo verranno prelevati dall'utente. Verrà visualizzato un messaggio di errore se il valore massimo preso è inferiore al valore minimo. Se la differenza tra il valore massimo e il valore minimo è 1, verrà visualizzato un altro messaggio di errore. Un numero casuale verrà generato in ogni esecuzione di questo script se i valori minimi e massimi validi verranno presi come input.

#!/Bin/Bash
# Genera un intervallo basato su casuale definito dall'utente
#PRESENTA IL VALORE più basso e superiore dall'utente
Echo "Immettere il valore minimo:"
Leggi il minimo
Echo "Immettere il valore massimo:"
Leggi il massimo
# -Controllo I valori presi sono validi
Se [[$ massimo < $minimum ]]; then
Echo "Il valore massimo non può essere inferiore al valore minimo"
Uscita 1
fi
#Find la differenza tra i numeri
diff = $ (($ massimo- $ minimo))
#Cuck il valore della differenza
if [[$ diff == 1]]; Poi
Echo "L'intervallo di numeri deve essere superiore a 1"
Uscita 1
fi
#Genera il numero casuale
RandomNumber = $ (($ minimo + $ casuale % $ massimo))
#Print il numero generato
echo "Il numero casuale generato è: $ casualnumber"

Verrà visualizzato il seguente output se lo script viene eseguito più volte. Qui, lo script sopra è stato eseguito tre volte. Il messaggio di errore è stato stampato per le prime due esecuzioni per input non validi e un numero casuale è stato generato per l'ultima esecuzione.

Generazione di numeri casuali usando il comando "shuf":

L'uso del comando "shuf" è un altro modo per generare il numero casuale di un intervallo specifico. In questo tutorial sono stati mostrati i modi per generare un numero casuale dal terminale e utilizzare uno script.

UN. Generare numeri casuali dal terminale

Esegui il comando seguente per generare un numero casuale da 0 a 50 usando il comando "shuf".

$ shuf -i 0-50 -n1

Secondo il seguente output, il comando sopra è stato eseguito tre volte e sono stati generati tre numeri casuali.

B. Generare numeri casuali usando lo script

Crea un file bash con il seguente script per generare un elenco di numeri casuali in base al valore di input. Il ciclo "per" è stato utilizzato per eseguire più volte il comando "shuf" per generare l'elenco di numeri casuali tra 1 e 100 e stampare i numeri.

#!/Bin/Bash
# Genera un comando casuale usando "shuf"
echo "quanti numeri casuali vuoi generare?: "
Leggi il numero
#Print i numeri casuali generati
Echo "I numeri casuali generati sono:"
per n in "seq" $ numero "'
Fare
RandomNumber = $ (shuf -i 1-100 -n1)
Echo $ Randomnumber
Fatto

Il seguente output mostra che 5 sono stati presi come valore di input e sono stati generati 5 numeri casuali, che non sono più di 100 e non meno di 1.

Generazione di numeri casuali usando /dev /urandom:

/Dev /urandom può essere utilizzato con comandi diversi per generare diversi tipi di valori casuali. Non può essere utilizzato per specificare i valori dell'intervallo come il comando "shuf" e $ variabile casuale. Ma il numero delle cifre del numero casuale può essere definito al comando con /dev /urandom. L'uso del comando "OD" con /dev /urandom ha mostrato nella parte successiva di questo tutorial. Questo comando può essere utilizzato per specificare il numero di byte in cui ciascun byte può essere definito da un numero decimale entro 0 a 255.

Esegui il comando seguente per generare un numero casuale tra 0 e 255.

$ od -a n -t d -n 1 /dev /urandom

L'output mostra che il comando sopra è stato eseguito tre volte e tre diversi numeri casuali sono stati generati qui in cui i valori non sono più di 255.

Conclusione:

In questo tutorial sono stati spiegati tre diversi modi per generare numeri casuali. Il programmatore può generare un intervallo specifico di numeri casuali utilizzando il comando $ casual variabile o "shuf" in bash. Il programmatore può utilizzare /dev /urandom con qualsiasi altro comando per generare un numero casuale di byte o lunghezze particolari. Generare numeri casuali è un requisito molto comune per la programmazione e spero che i lettori siano in grado di generare un numero casuale in base ai loro requisiti dopo aver letto questo tutorial.