Sorteio
Publicado por Raimundo Alves Portela (última atualização em 09/11/2012)
[ Hits: 13.362 ]
Homepage: http://portelanet.com
Download 1352159995.sorteia (versão 3)
Download sorteio.sh (versão 2)
Este script serve para fazer um sorteio baseado num arquivo texto dos inscritos. Ele exclui o nome do sorteado da lista de inscritos, não permitindo termos ganhadores repetidos.
Autor: Raimundo Alves Portela Filho
rai3mb@gmail.com
Desenvolvido em : 09/04/2011
Versão 3 - Enviado por Raimundo Alves Portela em 05/11/2012
Changelog: - Melhora nas rotinas já implementadas
- Adicionado a opção de ver todos os sorteados
- Adicionado a opção de reiniciar tudo
Versão 2 - Enviado por Aécio dos Santos Pires em 30/10/2012
Changelog: #-------------------------------------------------------
# file: sorteio.sh
# comment: Este script serve para fazer um sorteio baseado num arquivo texto dos inscritos.
# Ele exclui o nome do sorteado da lista de inscritos, não permitindo termos ganhadores repetidos.
# author: Raimundo Alves Portela Filho
# date: 09-abr-2011
# revision: Aecio Pires
# Last updated: 29-out-2012, 15:30
#-------------------------------------------------------
Melhorias realizadas nesta versão:
* Melhoria no loop de execução;
* Melhoria no menu de opções;
* Melhoria na documentação e legibilidade do código;
* Melhoria na exibição das informações;
* Criação das opções de visualização da lista de inscritos e ganhadores;
* Criação das opções de ajuda e versionamento do script;
* Checagem dos requisitos ao funcionamento do script;
* Log da execução do sorteio.
#!/bin/bash # Este script serve para fazer um sorteio baseado num arquivo texto dos inscritos # Ele exclui o nome do sorteado da lista de inscritos, não permitindo termos ganhadores repetidos # Autor: Raimundo Alves Portela Filho # rai3mb@gmail.com # Desenvolvido em : 09/04/2011 # ------------------------------------------------------------------- while : do clear echo " ========================================================================== SCRIPT - PARA SORTEIO DE GANHADOR BASEADO NA LINHA DO ARQUIVO INCRITOS.TXT -------------------------------------------------------------------------- [ 1 ] - FAZER SORTEIO [ 2 ] - VER ULTIMO SORTEADO [ 99 ] - SAIR ========================================================================== DIGITE SUA OPÇÃO:" read OP test "$OP" = "1" || test "$OP" = "2" || test "$OP" = "99" if [ "$?" -eq 1 ]; then echo "ESTA OPÇÃO NÃO EXISTE" sleep 2 else break fi done case "$OP" in 1) ARQUIVO="inscritos.txt" test -f "$ARQUIVO" if [ "$?" -eq 1 ]; then echo "Não foi encontrado o arquivos 'inscritos.txt', que contém a lista dos inscritos" exit fi QTD_LINHAS=$(cat "$ARQUIVO" | wc -l) if [ "$QTD_LINHAS" -eq 0 ]; then echo "Não há registros no arquivo" exit fi LINHA=$[RANDOM%$QTD_LINHAS+1] GANHADOR=$(cat "$ARQUIVO" | head -n $LINHA | tail -n 1) sed -i /"$GANHADOR"/d "$ARQUIVO" echo "GANHADOR : $GANHADOR" echo "$GANHADOR" >> ganhadores.txt echo echo echo "PRESSIONE UMA TECLA PARA CONTINUAR!" read CONFIRM ./sorteia ;; 2) echo "O ÚLTIMO GANHADOR FOI:" ULT_LINHA=$(cat ganhadores.txt | wc -l) cat ganhadores.txt | head -n $ULT_LINHA | tail -n 1 echo echo echo "PRESSIONE UMA TECLA PARA CONTINUAR!" read CONFIRM ./sorteia ;; 99) echo "Saindo..." sleep 1 clear exit esac
Script para criar tar.gz e tar.bz2
Instalando e configurando Postgres com Dialog
Visualisando espaço em disco, data do sistema e usuarios conectados
Atualizações de Apps, Desktop e Kernel agitam o ecossistema Linux nesta terça-feira
Miyoo Mini Plus + Onion OS (Linux)
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
Como colocar atalho para uma pasta na área de trabalho do Ubuntu 24.04... (1)
Como listar os arquivos em "bloquin... (0)
Como vencer a procrastinação? (8)
Adicional de convivdado em linux somente linha de comando (3)