Array de números aleatórios não-repetidos de um intervalo em Shellscript (Bashscript)
Publicado por Perfil removido (última atualização em 16/04/2012)
[ Hits: 5.774 ]
Este script preenche um array de tamanho N com números aleatórios pertencentes ao intervalo de 1 a N.
Ele gera um número e verifica se já foi inserido. Se sim, ele insere, gera outro e repete-se de novo. Se não, ele gera outro número e volta ao teste até o preenchimento completo do array.
Dá prá saber se foi repetido algum número com o seguinte comando:
$ ./alea001.sh | sort -n --key=2
Que pode ser melhorado usando-se comandos de linha como uniq, que filtram texto por critério de repetição.
O teste foi feito usando-se o número 52 porque é o mesmo número de cartas do baralho comum.
Por enquanto está sem falhas.
#!/bin/bash
# Para testar se não há números repetidos, usar por exemplo:
# ./alea001.sh | sort -n --key=2
unset VALOR i j k n vec;
VALOR=52;
n=$VALOR;
i=0;
while [[ i -lt n ]]; do
vec[$i]=-1;
let i++;
done;
i=0; j=0;
while [[ i -lt n ]]; do
let j=($RANDOM*VALOR)/32767 j++ k=0;
while [[ k -le i && ${vec[$k]} -ne j ]]; do
let k++;
done;
[[ k -eq $((i+1)) ]] && vec[$i]=$j && let i++;
done;
i=0;
while [[ i -lt n ]]; do
echo -e "$i\t${vec[$i]}";
let i++;
done;
unset VALOR i j k n vec;
Montar unidades de Rede windows
Script de controle do serviço TFTP
SCRIPT PARA AUTOMAÇÃO NA CRIAÇÃO DE USUÁRIOS NO AMBIENTE LINUX.
ABRINDO E FECHANDO A BANDEJA DO CD
Boas Práticas e Padrões Idiomáticos em Go e C
Vale a pena ter mais de uma interface grafica no seu Linux?
Estrutura e Funcionamento de um Ebuild no Gentoo Linux
Copiar Para e Mover Para no menu de contexto do Nautilus e Dolphin
Dotando o Thunar das opcoes Copiar para e Mover para no menu de contexto
Usando o ble.sh (Bash Line Editor) no lugar do bash completion
Montagem pré automática de HD externo usb em NTFS não funciona no Debian Trixie - Solução
Instalação Dual Boot Linux+Windows 11 (3)
No Ubuntu 26.04, sudo passou a mostrar os asteriscos ao digitar por pa... (5)
Como instalar Warsaw no Gentoo? (0)
Como insiro e excluo um elemento XML e JSON ao código Javascript (1)









