Mega Sena

Publicado por Pedro Robson Leão (última atualização em 29/06/2012)

[ Hits: 6.838 ]

Download megasena.sh




O script faz uma brincadeira para demonstrar de forma prática exemplo de uso de laços e variáveis em Bash-script de forma avançada.

PS: Caso alguém fique milionário graças ao script, lembre-se de contribuir minha parte a http://www.fsf.org/ e também auxiliar programadores independentes por aí ;)

Vlw

  



Esconder código-fonte

#!/bin/bash

NUMBERS=;

for ((i=0;i<6;)) ; do
        r=$((RANDOM%60));

        [ ! -z "${NUMBERS}" ] && {
                r=$( echo ${r} | egrep -v "${NUMBERS}0" );
                [ -z "${r}" ] && continue;

        }
        NUMBERS+=${r};
        i=$((i+1));

        [ $i -lt 6 ] && NUMBERS+="|";
done


echo ${NUMBERS//|/ };

Scripts recomendados

Script para tirar relatorios de acesso discado

Compactar com senha usando 7Zip

Trocando plano de fundo no flux de forma gráfica

Knife System

BACKUP para micros com Windows XP utilizando o share administrativo ( C$ )


  

Comentários
[1] Comentário enviado por quartodazona em 02/07/2012 - 00:38h

Olá amigo!
Testei seu script para tentar ser milionário, mas ele retorna erro.

megasena.sh: 5: megasena.sh: Syntax error: Bad for loop variable

Bem, eu não entendo muito de shell script, por isso eu não posso dizer que o "do" que só vi até hoje no while funcionaria nele e também não estou acostumado a ter somente 2 parâmetros na assinatura do for.

Se eu ficar milionário por conta do seu script, me lembrarei de você.


[2] Comentário enviado por pleao em 02/07/2012 - 10:19h

Opa :D

Então.

como vc comentou, rodei aqui novamente.

Segue a saida.


Não sei se tem algo a ver com sua versão de BASH.

O for com dois parametros não tem problema.

Voce consegue até fazer um forever "for(;;)", o "do/done" faz a marcação de bloco de codigo.

Qualquer duvida manda uma mensagem

pleao@pleao:~$ cat x.sh
#!/bin/bash

NUMBERS=;

for ((i=0;i<6;)) ; do
r=$((RANDOM%60));

[ ! -z "${NUMBERS}" ] && {
r=$( echo ${r} | egrep -v "${NUMBERS}0" );
[ -z "${r}" ] && continue;

}
NUMBERS+=${r};
i=$((i+1));

[ $i -lt 6 ] && NUMBERS+="|";
done


echo ${NUMBERS//|/ };
pleao@pleao:~$ bash ./x.sh
24 29 49 27 46 14
pleao@pleao:~$ echo $BASH_VERSION
4.2.24(1)-release


[1] Comentário enviado por quartodazona em 02/07/2012 - 00:38h:

Olá amigo!
Testei seu script para tentar ser milionário, mas ele retorna erro.

megasena.sh: 5: megasena.sh: Syntax error: Bad for loop variable

Bem, eu não entendo muito de shell script, por isso eu não posso dizer que o "do" que só vi até hoje no while funcionaria nele e também não estou acostumado a ter somente 2 parâmetros na assinatura do for.

Se eu ficar milionário por conta do seu script, me lembrarei de você.



[3] Comentário enviado por reynaldohortensi em 23/01/2021 - 17:42h

Gostei do seu (mas não entendi tudo).
O que essa linha faz?: [ ! -z "${NUMBERS}" ] && { r=$( echo ${r} | egrep -v "${NUMBERS}0" ); [ -z "${r}" ] && continue;}


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts