¿Cómo ejecutar aleatoriamente un comando dentro de la lista de comandos especificada? Útil para elegir aleatoriamente el sonido de inicio, el fondo de pantalla o la ejecución de comandos.
En general, si tengo comandos para la ejecución de la siguiente manera, ¿cómo obtengo aleatoriedad :?
#!/bin/bash
<command_1>
<command_2>
<command_3>
.
.
.
<command_n>
¡Entonces quiero ejecutar aleatoriamente solo un comando de las posibilidades anteriores cuando se ejecuta el script!
¿Como hacer eso?
command-line
Pandya
fuente
fuente
Respuestas:
La variable
$RANDOM
(en realidad, una función bash) devuelve un número aleatorio de 0 a 32767 inclusive.Por lo general, desea limitar su rango dividiéndolo por algún número y tomar el resto, por ejemplo.
En este ejemplo simplista, estará ligeramente sesgado para cualquier divisor que no se divida por igual en 32768 (p. Ej., Cualquier cosa que no sea una potencia de dos), pero en su escenario no creo que tenga problemas por un ligero sesgo.
Para elegir un archivo aleatorio, nombraría a sus archivos algo así como:
Y luego puedes elegir uno aleatorio con
fuente
RANDOM
, acepté!De acuerdo con la respuesta @neon_overload (usando
RANDOM
),puedo poner un
RANDOM
script de ejemplo de la siguiente manera (para 4 comandos):fuente
Si desea aleatoriedad a través de un sitio externo en lugar de uno generado por su computadora, puede usar este script:
Ejecutar como rand (MIN) (MAX) (suponiendo que guarde como / usr / bin / rand)
Es posible que deba instalar curl primero (sudo apt-get install curl) si aún no está instalado.
fuente
Puede usar el
shuf
comando de GNU coreutils .Ejemplo:
Ahora, para obtener una entrada aleatoria, puede usar
-n 1
qué salidas de primera línea.Ejemplo para imprimir un número aleatorio del 1 al 100:
Si
file
tiene los siguientes contenidos:También puedes hacer algo como:
fuente