El script de shell genera números enteros aleatorios dentro de un rango, incluidos los valores límite 4 y 9, y almacena la secuencia de números aleatorios en una matriz. ¿Cómo se puede implementar el script?
#!/bin/sh
declarar -a arr #Declarar arr como una matriz
arr=(`seq 4 9 | awk 'BEGIN{srand ( ); ORS=" "} {b[rand()]=$0} END{for(x in b) print b[x]}'`)
echo ${arr[*]} # Imprimir todos los elementos de la matriz array
salir 0
Descripción:
Generar un entero aleatorio que no se repita dentro del rango y guardarlo en la matriz Arr.
seq 4 9 se utiliza para generar una secuencia de números enteros de 4 a 9 (incluidos los valores límite 4 y 9).
La función rand() en awk se utiliza para generar aleatoriamente un valor decimal entre 0 y 1 (reteniendo 6 dígitos después del punto decimal).
Dado que rand() solo genera números aleatorios una vez, utilice la función srand() para generar números aleatorios de forma continua (dejar los corchetes en blanco significa que la hora actual se utiliza como semilla del contador aleatorio por defecto). De esta forma, se pueden generar números aleatorios de forma aleatoria a intervalos de segundos.
Limitaciones:
Dado que el intervalo es de segundos, si ejecuta el script dos veces en rápida sucesión (en 1 segundo), encontrará que los números aleatorios generados siguen siendo los mismos.