Pular para o conteúdo

Gerando cadeias aleatórias

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
Sandro Marcell SMarcell
Hits: 6.171 Categoria: Shell Script Subcategoria: Introdução
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

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
Download cadeia.sh Enviar nova versão

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

Dialog Tour

Fazendo os leds piscar

configurando o idesk

Atualização e Instalação de Programas no Fedora via Script

Samba - Forçar usuário a alterar senha no próximo logon

#1 Comentário enviado por removido em 01/10/2008 - 06:19h
Ótimo para o Brasil. Que surjam mais no RJ!

Contribuir com comentário

Entre na sua conta para comentar.