Tenho esse script feito em Shell

1. Tenho esse script feito em Shell

TheMagicOfOz
TheMagicOz

(usa PCLinuxOS)

Enviado em 22/05/2018 - 14:32h

Tenho o seguinte script:

#!/bin/bash
quantidade=""
echo "Entre com a quantidade que você deseja gerar o sorteio:"
read quantidade
echo
i=1
for (( i=1; i<=$quantidade; i++ )); do
resultado_loteria=(`shuf -i 1-25 -n 15`)
echo " ${resultado_loteria[*]} "
echo ${resultado_loteria[*]} >> resultados.txt
echo
done

A função desse script é a seguinte, ele vai pedir qual a quantidade de sorteio deverá ser feito, e o sorteio é feito assim, serao sorteados 15 numeros de 1 à 25 e esses 15 resultados ficará salva dentro do array resultado_loteria, rodando o codigo ele ficaria assim, colocando como de entrada o valor "2", quantidade de jogos pra gerar:
$ . ajuda.sh
Entre com a quantidade que você deseja gerar o sorteio:
2

4 11 21 3 6 1 19 5 25 24 18 20 17 7 14
4 14 8 12 7 19 20 24 22 16 18 1 25 11 13

Aí como eu gerei dois sorteios , queria salvar essas duas listas dentro desse array resultado_loteria, mas só ta salvando dentro do array o ultimo jogo sorteado, Ai se eu der um echo dentro do array resultado_loteria: sairia somente a ultima linha sorteada :
$ echo ${resultado_loteria[*]}
4 14 8 12 7 19 20 24 22 16 18 1 25 11 13

Como faço pra salvar dentro do array todas as linhas de sorteio , não somente só a ultima sorteada?


  


2. Re: Tenho esse script feito em Shell

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 22/05/2018 - 16:04h

Thauan,

Segue o novo script, onde armazenamos todos os resultados na variável e no arquivo:

#!/bin/bash

quantidade=""
echo "Entre com a quantidade que você deseja gerar o sorteio:"
read quantidade

echo

resultado_loteria=""
resultado_completo=""
for (( i=1; i<=$quantidade; i++ )); do
resultado_loteria=(`shuf -i 1-25 -n 15`)
resultado_completo+=${resultado_loteria[*]}
resultado_completo+="\n"
done

echo -e ${resultado_completo[*]}
echo -e ${resultado_completo[*]} > resultados.txt
echo


Abraço,
Diego M. Rodrigues


3. Re: Tenho esse script feito em Shell

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 23/05/2018 - 01:43h

Thauan_Mendes escreveu:

Tenho o seguinte script:

#!/bin/bash
quantidade=""
echo "Entre com a quantidade que você deseja gerar o sorteio:"
read quantidade
echo
i=1
for (( i=1; i<=$quantidade; i++ )); do
resultado_loteria=(`shuf -i 1-25 -n 15`)
echo " ${resultado_loteria[*]} "
echo ${resultado_loteria[*]} >> resultados.txt
echo
done

A função desse script é a seguinte, ele vai pedir qual a quantidade de sorteio deverá ser feito, e o sorteio é feito assim, serao sorteados 15 numeros de 1 à 25 e esses 15 resultados ficará salva dentro do array resultado_loteria, rodando o codigo ele ficaria assim, colocando como de entrada o valor "2", quantidade de jogos pra gerar:
$ . ajuda.sh
Entre com a quantidade que você deseja gerar o sorteio:
2

4 11 21 3 6 1 19 5 25 24 18 20 17 7 14
4 14 8 12 7 19 20 24 22 16 18 1 25 11 13

Aí como eu gerei dois sorteios , queria salvar essas duas listas dentro desse array resultado_loteria, mas só ta salvando dentro do array o ultimo jogo sorteado, Ai se eu der um echo dentro do array resultado_loteria: sairia somente a ultima linha sorteada :
$ echo ${resultado_loteria[*]}
4 14 8 12 7 19 20 24 22 16 18 1 25 11 13

Como faço pra salvar dentro do array todas as linhas de sorteio , não somente só a ultima sorteada?


Boa noite Thauan.
Segue sugestão:
#!/bin/bash
NN=1
XX=$(sed 's/^0//' <<< "$1")
tput clear
LINE() { echo -e $_{1..45}'\b-' ; }

AJUDA() { echo -e "Modo de uso:\n$0 N\nOnde \"N\" deve ser maior que ZERO.\n"; }

[[ "$XX" -ne 0 ]] && qtdd="$XX" || { AJUDA ; exit ; }
echo -e "$(LINE)\nJogada Nº $NN\n$(LINE)\nNúmeros Sorteados:\n"

for N in $(seq 1 $qtdd);do
resultado_loteria=($(seq -w 1 25|shuf -n15))
echo "${resultado_loteria[*]}"|tee -a resultados.txt
done
let NN++
sed -i "2s/.*/NN=${NN}/" $0


Alterei para colocar a quantidade como argumento, se não for um Número maior que ZERO, mostra a ajuda e sai.
Exemplo:

./sorteio_001.sh 15
---------------------------------------------
Jogada Nº 1
---------------------------------------------
Números Sorteados:

18 09 06 04 03 17 14 07 15 19 08 25 20 12 10
21 06 14 19 03 07 08 22 12 15 24 04 16 25 09
04 17 14 23 03 15 01 08 18 06 12 24 10 21 02
10 24 15 08 12 19 03 14 20 06 18 16 01 02 13
04 20 15 18 14 16 11 17 21 06 24 13 02 07 01
05 17 07 21 12 02 01 20 04 25 23 06 16 11 08
07 24 17 10 02 19 18 03 01 06 16 23 11 20 13
16 02 01 17 03 19 23 20 10 09 12 04 08 22 06
24 19 17 20 14 22 01 03 11 02 09 07 13 05 15
17 09 18 06 10 14 03 22 12 21 08 11 02 19 04
25 18 03 15 17 14 10 22 16 21 11 20 19 07 04
03 23 12 17 14 08 11 20 25 18 09 02 16 10 21
19 08 07 24 23 09 16 21 17 05 04 25 14 10 20
14 04 23 01 08 12 15 06 20 17 18 10 02 25 22
06 03 09 01 15 23 07 19 04 11 16 12 10 22 05
---------------------------------------------
./sorteio_001.sh

Modo de uso:
./sorteio_001.sh N
Onde "N" deve ser maior que ZERO.




Att.:
marcelo oliver


4. Como salvo esse resultados que foi gerados dentro de um array ?

TheMagicOfOz
TheMagicOz

(usa PCLinuxOS)

Enviado em 23/05/2018 - 14:29h

Queria por exemplo, coloquei pra gerar 2 sorteios, ai essas duas linhas de sorteio, salvar dentro de um array/vetor como você preferir, pq no meu script original no final eu comparo o jogo que foi jogado com os jogos de foram sorteados..



5. Re: Tenho esse script feito em Shell

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 24/05/2018 - 18:45h

Thauan_Mendes escreveu:

Queria por exemplo, coloquei pra gerar 2 sorteios, ai essas duas linhas de sorteio, salvar dentro de um array/vetor como você preferir, pq no meu script original no final eu comparo o jogo que foi jogado com os jogos de foram sorteados..


Thauan_Mendes , os números sorteados já estão em uma ARRAY...
O que vc pode fazer e "gravar" a sua aposta em outra array e depois comparar....
Quantos números quer apostar?

marcelo oliver







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts