Dúvida em Exercício [RESOLVIDO]

1. Dúvida em Exercício [RESOLVIDO]

Simone de Cássia Santos
scassiasantos

(usa Ubuntu)

Enviado em 18/10/2016 - 22:20h

Boa noite!

Poderia me ajudar com esses exercícios? Estou com uma disciplina na pós de Shell Script, porém estou com dificuldades em resolvê-los.

Fazer um script para verificar se o pagamento já foi efetuado.
Para isso deverá definir a data do pagamento. Ex. dia 15.
Depois coletar a data atual no sistema (somente o dia) e comparar se é igual ou superior ao dia do pagamento.
Caso seja: escreva pagamento realizado.
Caso negativo: Escreva que ainda não foram realizados.

Melhoria: Faça a conta de quantos dias ainda faltam para o recebimento.
----------------------------------------------------------------------------------------------

Verificar se 2 variáveis do tipo “inteiro” são iguais a uma variável constante.
Se positivo: Escrever os valores das 2 variáveis e a constante.
Senão: Verificar e escrever qual variável é diferente da constante (ou se ambas são diferentes).


Obrigada!!


  


2. Re: Dúvida em Exercício [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2016 - 22:22h

Vai ter que apresentar algum esboço.

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Dúvida em Exercício

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2016 - 22:35h


Verificar se 2 variáveis do tipo “inteiro” são iguais a uma variável constante.
Se positivo: Escrever os valores das 2 variáveis e a constante.
Senão: Verificar e escrever qual variável é diferente da constante (ou se ambas são diferentes).


Apenas uma confirmação neste trecho (procede?):
1. as duas variáveis "inteiras" seriam a do dia no sistema e a de qtos dias faltam p/ o recebimento?
2. a variável "constante" seria aquela que armazena o valor "15" (ou outro definido pelo usuário), que é fixa e usada na comparação com o dia do sistema?

OBS: O shell-script, até onde sei, não define claramente se uma variável é do tipo integer, float, char, string etc, como acontece no C, por exemplo; o que definiria o tipo de variável no Shell seria apenas o tipo de valor que ela possui (por isso coloquei entre aspas os tipos das variáveis).


4. Re: Dúvida em Exercício [RESOLVIDO]

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 18/10/2016 - 22:38h

Só para complementar, é uma pós, escreva o script e poste suas dificuldades e dúvidas que o pessoal te ajudará com certeza.



5. Dúvida em Exercício

Simone de Cássia Santos
scassiasantos

(usa Ubuntu)

Enviado em 18/10/2016 - 23:48h

Segue:

#!/bin/bash
echo "Verificador do pagamento"
echo "Data programada para pagamento: 20"

pagamento=$(date -d 20 +"%d")
atual=$(date +"%d")

echo "Data atual: $atual"
if [ $atual > $pagamento ];
then
echo "Pagamento já realizado"
else
echo "Pagamento não realizado"
echo "Numero de dias faltantes para o pagamento: (($pagamento-$atual))"
fi
echo



6. Re: Dúvida em Exercício

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 18/10/2016 - 23:57h

A variável pagamento sempre vai dar "o dia atual" ao contrário de "15" que é a data correta, substitua ela por "15" já que é a única constante do script.




_____________________________________________________________________
OS: Kali Linux kali-rolling kali-rolling
Kernel: x86_64 Linux 4.6.0-kali1-amd64
Resolution: 2390x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB


7. Re: Dúvida em Exercício

Perfil removido
removido

(usa Nenhuma)

Enviado em 19/10/2016 - 00:05h

if [ $atual > $pagamento ]; 


Você teria que substituir > por -gt.

Outra coisa, teria que receber alguma informação via terminal, como data de pagamento?

read -p "Entre com a data: " data; 


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



8. Re: Dúvida em Exercício

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 19/10/2016 - 00:12h

Seria +- assim:
#!/bin/bash
echo "Verificador do pagamento"
echo "Data programada para pagamento: 20"

pagamento=20
atual=$(date +%d)

echo "Data atual: $atual"
if [ $atual -gt $pagamento ]; then
echo "Pagamento já realizado"
else
echo -e "Pagamento não realizado\n"
echo "Dias faltantes: $(($pagamento-$atual))"
echo "data coincide dia: $(date +%d\/%m\/%Y -d "+$(($pagamento-$atual)) days")"
fi

Ou
#!/bin/bash
echo "##################################"
echo "# Verificador de pagamentos #"
echo -e "##################################\n"

read -p "Digite a data prevista de pagamento: " pagamento
atual=$(date +%d)

echo "Data atual: $atual"
if [ $atual -gt $pagamento ]; then
echo "Pagamento já realizado"
else
echo -e "Pagamento não realizado\n"
echo "Dias faltantes: $(($pagamento-$atual))"
echo "data coincide dia: $(date +%d\/%m\/%Y -d "+$(($pagamento-$atual)) days")"
fi

______________________________________________________________________
OS: Kali Linux kali-rolling kali-rolling
Kernel: x86_64 Linux 4.6.0-kali1-amd64
Resolution: 2390x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB


9. Re: Dúvida em Exercício [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 19/10/2016 - 02:01h

Somente uma sugestão....
Implemente a verificação do dia da semana ....
Se for Sábado ou Domingo, pode ser pago no próximo dia útil....
Sábado => date +%d/%m/%Y -d "+2 day"
Domingo => date +%d/%m/%Y -d "+1 day"
Dia da semana . . .
date +%A
quarta

Teste, com alterações:
OBS.: Necessário colocar A HORA para não acusar erro no dia do inicio do HORáRIO de VERãO. 00:00 as 00:59 de 16/10, NÃO EXISTIU . . .
for ((D=16;D<=22;D++)) { echo -n "$D: " ; date -d"2016-10-$D 12:00" +%A|sed -r 's/^[stq][eue].*/&-Feira/;s/(^.|-.)/\U&/g' ; }
16: Domingo
17: Segunda-Feira
18: Terça-Feira
19: Quarta-Feira
20: Quinta-Feira
21: Sexta-Feira
22: Sábado


att.:
Marcelo Oliver








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts