Gerando cadeias aleatórias

Publicado por Sandro Marcell 29/09/2008

[ Hits: 5.779 ]

Homepage: http://sanmarcell.wordpress.com

Download cadeia.sh




Simples script (em zsh) que gera cadeias utilizando letras, números, sinais, etc... de forma aleatória.  Exemplos:

% ./script.sh 5
!sl[g

% ./script.sh 15
~^VnP_FVWeig51g

% ./script.sh 30
k8_aS@*R:EI2k2B_$g5ymMDSXaiQ*q

  



Esconder código-fonte

#!/bin/zsh -f
#
# Gerando cadeias aleatorias.
# Sandro Marcell (sandro_marcell@yahoo.com.br)
#
# Uso: <script.sh> ou <script.sh [valor]>
#
# Onde:
# [valor] determinara a quantidade de caracteres que comporao a cadeia.
#
# Ex.:
# % ./script.sh 30
# xZ~c9r3VN@^c=ghWCm*NIt5t7AVsgO
#
# Obs.:
# - Somente numeros sao validos para a string [valor];
# - Caso [valor] nao seja especificado, o padrao assumido e 13;
# - Se [valor] possuir espacos ou quaisquer outros caracteres que nao
# sejam numeros, os mesmos serao removidos.

# Carregando modulo de funcoes matematicas:
zmodload -i zsh/mathfunc

# Removendo caracteres invalidos:
string="$argv"
valor=$(print ${string//[^0-9]/})

# Caracteres utilizados para gerar a cadeia:
cars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?:^~@#$%&*_+=[]/"

# Loop de controle:
for ((i=0 ; i < ${valor:-13} ; i++))
do
   # Gerando cadeia:
   rand=$((1 + ((int(${(c)#cars} * rand48(seed))) / (RAND_MAX + 1 ))))
   print -n "$cars[$rand]"
   unset rand
done
print ""
# Fim

Scripts recomendados

Funcoes com usuarios

Instalando e configurando Postgres com Dialog

Verificando espaço de Disco usando Dialog

FirewallIptables.sh

Descobrindo MAC, IP, Broadcast e Máscara da placa de rede


  

Comentários
[1] Comentário enviado por removido em 01/10/2008 - 06:19h

Ótimo para o Brasil. Que surjam mais no RJ!

[2] Comentário enviado por SMarcell em 25/02/2009 - 17:31h

Versão atualizada: http://www.slackbr.org/forum/viewtopic.php?f=45&t=16455


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts