ich eine Zufallszahl aus gegebener ListeBash Zufallszahl aus Pool von Zahlen
Zum Beispiel erzeugen will, wenn ich den Zahlen
1,22,33,400,400,23,12,53 etc.
gebe ich mag eine Zufallszahl aus den gegebenen Zahlen wählen .
ich eine Zufallszahl aus gegebener ListeBash Zufallszahl aus Pool von Zahlen
Zum Beispiel erzeugen will, wenn ich den Zahlen
1,22,33,400,400,23,12,53 etc.
gebe ich mag eine Zufallszahl aus den gegebenen Zahlen wählen .
Konnte kein genaues Duplikat davon finden. Also hier geht mein Versuch, genau was 123
in Kommentaren erwähnt. Die Lösung ist über Shell-Varianten hinweg portierbar und verwendet keine shell
Binaries, um die Leistung zu vereinfachen.
Sie können die folgenden Befehle direkt auf der Konsole ausführen.
# Read the elements into bash array, with IFS being the de-limiter for input
IFS="," read -ra randomNos <<< "1,22,33,400,400,23,12,53"
# Print the random numbers using the '$RANDOM' variable built-in modulo with
# array length.
printf "%s\n" "${randomNos[ $RANDOM % ${#randomNos[@]}]}"
sich nach den Kommentaren unten, wenn Sie eine bestimmte Liste von Zahlen aus einem Bereich ignorieren auszuwählen; tun den Ansatz wie unten
#!/bin/bash
# Initilzing the ignore list with the numbers you have mentioned
declare -A ignoreList='([21]="1" [25]="1" [53]="1" [80]="1" [143]="1" [587]="1" [990]="1" [993]="1")'
# Generating the random number
randomNumber="$(($RANDOM % 1023))"
# Printing the number if it is not in the ignore list
[[ ! -n "${ignoreList["$randomNumber"]}" ]] && printf "%s\n" "$randomNumber"
Sie können es wie in einer bash
Variablen speichern
randomPortNumber=$([[ ! -n "${ignoreList["$randomNumber"]}" ]] && printf "%s\n" "$randomNumber")
Denken Sie daran, assoziativ-Arrays bash Version ≥4 arbeiten müssen.
Setzen Sie sie in ein Array, rand mod die Größe des Arrays. – 123