Gerando cadeias aleatórias

Publicado por Sandro Marcell 29/09/2008

[ Hits: 5.810 ]

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

Atualizando pacotes no Ubuntu

Recarregando as configurações do SQUID sem perder as conexões

Controlando espaço de disco com quotas

Adicionar sites para serem bloqueados pelo squid

Script para desligamento e reinicialização do computador s/precisar sair do KDE


  

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