Como executar aleatoriamente um comando na lista de comandos especificada? Útil para escolher aleatoriamente o som de inicialização, o papel de parede ou a execução de comandos.
Em geral, se eu tiver comandos para execução da seguinte maneira, como obtenho aleatoriedade :?
#!/bin/bash
<command_1>
<command_2>
<command_3>
.
.
.
<command_n>
Então eu quero executar aleatoriamente apenas um comando acima das possibilidades quando o script é executado!
Como fazer isso?
command-line
Pandya
fonte
fonte
Respostas:
A variável
$RANDOM
(na verdade, uma função bash) retorna um número aleatório de 0 a 32767, inclusive.Você normalmente deseja limitar seu alcance, dividindo-o por algum número e tendo o restante, por exemplo.
Neste exemplo simplista, será um pouco tendencioso para qualquer divisor que não se divida igualmente em 32768 (por exemplo, qualquer coisa que não seja uma potência de dois), mas no seu cenário, não acho que você se incomodaria. por um leve viés.
Para escolher um arquivo aleatório, você deve nomear seus arquivos da seguinte forma:
E então você pode escolher um aleatório com
fonte
RANDOM
, eu aceitei!De acordo com a resposta @neon_overload (using
RANDOM
),posso colocar o
RANDOM
exemplo de script da seguinte forma (para 4 comandos):fonte
Se você deseja aleatoriedade através de um site externo, e não do gerado pelo seu computador, você pode usar este script:
Executar como rand (MIN) (MAX) (supondo que você salve como / usr / bin / rand)
Talvez você precise instalar o curl primeiro (sudo apt-get install curl) se ele ainda não estiver instalado.
fonte
Você pode usar o
shuf
comando do GNU coreutils .Exemplo:
Agora, para obter uma entrada aleatória, você pode usar as
-n 1
saídas de primeira linha.Exemplo para imprimir números aleatórios de 1 a 100:
Se você tiver o
file
seguinte conteúdo:Você também pode fazer algo como:
fonte