Wygeneruj liczbę losową w Bash

Wygeneruj liczbę losową w Bash
Liczba zmieniona w każdym wykonaniu skryptu nazywana jest liczbą losową i jest nieprzewidywalna. Losowe liczby są używane w programowaniu do różnych celów, takich jak testowanie danych, generowanie biletów na loterię, generowanie hasła itp. Do generowania liczby losowej w Bash można użyć numeru liczbowego lub liczby pływającej. Losowa liczba określonego zakresu lub rozmiaru można wygenerować za pomocą skryptu BASH. W tym samouczku pokazano różne sposoby generowania liczb losowych w BASH.

Użycie losowego generatora:

Liczba losowa lub zakres liczb losowych można wygenerować przy użyciu zmiennej $. Domyślnie generuje liczbę losową między 0 a 32767. Ale możesz ustawić zakres liczb do generowania liczb losowych, dzieląc wartość $ losowo z określoną wartością. Różne zastosowania zmiennej losowej $ do generowania liczb losowych pokazano w następnej części samouczka.

Generowanie liczb losowych za pomocą $ losowa zmienna:

Pokazane są sposoby generowania liczby losowej w terminalu i wykonaniu pliku skryptu.

A. Generuj liczby losowe z terminala

Uruchom następujące polecenie, aby wygenerować liczbę losową w zakresie od 0 do 32767.

$ echo $ losowe

Możesz wygenerować losową liczbę określonego zakresu, dzieląc zmienną $ losową z określoną wartością i uzyskując pozostałą wartość. Uruchom następujące polecenie, aby wygenerować liczbę losową w zakresie od 1 do 50. Tutaj użyto podwójnych pierwszych nawiasów z $.

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

Uruchom następujące polecenie, aby wygenerować liczbę losową w zakresie od 10 do 40. Tutaj zastosowano trzeci wspornik z $.

$ echo $ [$ losowo % 40 + 10]

B. Generuj liczby losowe za pomocą skryptu

Utwórz plik bash z następującym skryptem, aby wygenerować losową liczbę określonego zakresu, w którym wartości minimalne i maksymalne są pobrane od użytkownika. Komunikat o błędzie zostanie wyświetlony, jeśli pobrana maksymalna wartość jest mniejsza niż wartość minimalna. Jeśli różnica między wartością maksymalną a minimalną wynosi 1, zostanie wyświetlony inny komunikat o błędzie. Liczba losowa zostanie wygenerowana w każdym wykonaniu tego skryptu, jeśli prawidłowe wartości minimum i maksymalne zostaną przyjęte jako dane wejściowe.

#!/bin/bash
# Wygeneruj losowo oparty zakres zdefiniowany przez użytkownika
#Weź dolną i górną wartość od użytkownika
echo „Wprowadź minimalną wartość:”
Przeczytaj minimum
echo „Wprowadź maksymalną wartość:”
Przeczytaj maksimum
#Sprawdź wzięte wartości są prawidłowe
Jeśli [[$ maksimum < $minimum ]]; then
Echo „Maksymalna wartość nie może być niższa niż wartość minimalna”
Wyjście 1
fi
#Znajdź różnicę między liczbami
diff = $ (($ maksimum-$ minimum))
#Sprawdź wartość różnicową
jeśli [[$ diff == 1]]; Następnie
echo „Zakres liczb musi wynosić więcej niż 1”
Wyjście 1
fi
#Generuj liczbę losową
RandomNumber = $ (($ minimum + $ losowo % $ maksimum))
#PROPREM Wygenerowana liczba
echo „Wygenerowana liczba losowa to: $ losowa liczba”

Następujące dane wyjściowe pojawi się, jeśli skrypt zostanie wykonywany wiele razy. Tutaj powyższy skrypt został wykonany trzy razy. Komunikat o błędzie został wydrukowany dla pierwszych dwóch egzekucji dla nieprawidłowych danych wejściowych, a liczba losowa została wygenerowana dla ostatniego wykonania.

Generowanie liczb losowych za pomocą polecenia „ShUF”:

Korzystanie z polecenia „shuf” to kolejny sposób generowania losowej liczby określonego zakresu. W tym samouczku pokazano sposoby generowania losowej liczby z terminalu i użycia skryptu.

A. Generuj liczby losowe z terminala

Uruchom następujące polecenie, aby wygenerować liczbę losową od 0 do 50 za pomocą polecenia „ShUF”.

$ shuf -i 0-50 -n1

Zgodnie z następującym wyjściem powyższe polecenie zostało wykonane trzykrotnie i wygenerowano trzy losowe liczby.

B. Generuj liczby losowe za pomocą skryptu

Utwórz plik bash z następującym skryptem, aby wygenerować listę liczb losowych na podstawie wartości wejściowej. „Pętla” została użyta do wielokrotnego wykonywania polecenia „ShUF” do wygenerowania listy liczb losowych między 1 do 100 i wydrukowania liczb.

#!/bin/bash
# Wygeneruj losowe za pomocą polecenia „shuf”
echo „Ile liczb losowych chcesz wygenerować?: "
Numer odczytu
#PROPREM Wygenerowane liczby losowe
echo „Wygenerowane liczby losowe to:”
dla n w „seq„ $ liczba ”''
Do
RandomNumber = $ (shuf -i 1-100 -n1)
echo $ losynumber
zrobione

Poniższe dane wyjściowe pokazuje, że 5 zostało przyjęte jako wartość wejściowa, a 5 losowych liczb zostało wygenerowanych, które nie są więcej niż 100 i nie mniej niż 1.

Generowanie liczb losowych za pomocą /dev /urandom:

/Dev /urandom może być używany z różnymi poleceniami do generowania różnych rodzajów wartości losowych. Nie można go użyć do określenia wartości zakresu, takich jak polecenie „shuf” i zmienna $. Ale liczba cyfr liczby losowej można zdefiniować w poleceniu za pomocą /dev /urandom. Użycie polecenia „OD” z /dev /urandom pokazało w następnej części tego samouczka. To polecenie można użyć do określenia liczby bajtów, w których każdy bajt może być zdefiniowany przez liczbę dziesiętną w odległości 0 do 255.

Uruchom następujące polecenie, aby wygenerować liczbę losową między 0 a 255.

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

Dane wyjściowe pokazuje, że powyższe polecenie zostało wykonane trzykrotnie i wygenerowano tutaj trzy różne liczby losowe.

Wniosek:

W tym samouczku wyjaśniono trzy różne sposoby generowania liczb losowych. Koder może wygenerować określony zakres liczb losowych za pomocą polecenia $ losy lub polecenie „shuf” w Bash. Koder może używać /dev /urandom z dowolnym innym poleceniem, aby wygenerować losową liczbę określonych bajtów lub długości. Generowanie liczb losowych jest bardzo częstym wymogiem programowania i mam nadzieję, że czytelnicy będą w stanie wygenerować liczbę losową na podstawie ich wymagań po przeczytaniu tego samouczka.