Pular para o conteúdo

Data em 12 horas [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Data em 12 horas [RESOLVIDO]

Enviado em 29/04/2010 - 01:12h

Não estou conseguindo fazer um script que gere uma saida assim de acordo com a hora:

Bom dia (7:30 am).
Boa noite (9:30 pm).

Meu script esta gerando erro:

#!/bin/bash

Hora=`date +%H`

case $Hora in
0[1-9]|1[01]) echo Bom dia;;
1[2-7] ) echo Boa tarde;;
*) echo Boa noite;;

esac

hh=`date "+%H"`
mm=`date "+%M`
ap=am

if [ "$hh" -gt 12 ]
then
hh=` expr $hh -12`
ap=pm
fi

echo $hh:$mm $ap

exit 0


Responder tópico

2. Duas versões

Melhor resposta

Enviado em 01/05/2010 - 00:30h

As duas versões abaixo funcionaram conforme o esperado em minha maquina. Utilizei um typeset e um sed e poderia usar ainda, uma linha let HORA=HORA*1 mas ae eu seria grosseiro demais...;P


Nota: substitua {TEXTO} por \ no script antes de rodá-lo

#! /bin/bash

typeset -i HORA=$(date +%H | sed 's/[^0-9]//g');

case $HORA in
0[0-9]|[10-12]) PP='AM'; SALDACAO='Bom dia!';;
[13-18]) PP='PM'; SALDACAO='Boa Tarde!';;
[19-24]) PP='PM'; SALDACAO='Boa Noite!';;
esac

echo -e "\33[01m${SALDACAO}\33[0m\n$(date) \33[01m${PP}\33[0m\n";



#! /bin/bash

typeset -i HORA=$(date +%k | sed 's/[^0-9]//g');

case $HORA in
[0-12]) TM='AM'; SALDACAO='Bom dia!';;
[13-18]) TM='PM'; SALDACAO='Boa Tarde!';;
[19-24]) TM='PM'; SALDACAO='Boa Noite!';;
esac

echo -e "\33[01m$SALDACAO\33[0m\n$(date) \33[01m$TM\33[0m";

exit

3. Re: Data em 12 horas [RESOLVIDO]

Enviado em 30/04/2010 - 05:43h

Cara, eu nunca consegui sacar esse negócio de PM, AM... (ôooo coisa complicada) mas, ae vai...


#!/bin/bash

# http://wolferineblues.com
# by ./.ronin

HORA=$(date +%H | sed 's/[^0-9]//g');

case $HORA in
0[0-9]|[10-12]) PP='AM'; SALDACAO='Bom dia';;
[13-18]) PP='PM'; SALDACAO='Boa Tarde';;
*) PP='PM'; SALDACAO='Boa Noite';;
esac

echo -e "\n\033[05m${SALDACAO}!\033[0;m\n$(date) ${PP}\n";

exit

4. Re: Data em 12 horas [RESOLVIDO]

Enviado em 30/04/2010 - 10:35h

cara o problema é só um espaço no EXPR (entre - e o 12):
hh=` expr $hh - 12`

5. Re: Data em 12 horas [RESOLVIDO]

Enviado em 30/04/2010 - 23:39h

./.ronin

O script esta com um pequeno erro na hora de executar.
Ele informa a saudação errada.
Teste aqui e de manhã ele da boa noite e de noite ele da bom dia.

6. Re: Data em 12 horas [RESOLVIDO]

Enviado em 01/05/2010 - 00:44h

Cara, essa é a primeira vez que posto '\' e não é substituído por {TEXTO}.
Será o Benetido???

7. Re: Data em 12 horas [RESOLVIDO]

Enviado em 01/05/2010 - 13:54h

Fiz assim e rodou:

#!/bin/bash

aux=`date +%H`
aux2=`date +%I`
if [ $aux -ge 12 -a $aux2 -ge 6 ]
then
echo "Boa Noite (`date +%I:%M` pm)."
elif [ $aux -lt 12 ]
then
echo "Bom dia (`date +%I:%M` am)."
elif [ $aux -ge 12 -a $aux2 -lt 6 ]
then
echo "Boa tarde (`date +%I:%M` pm)."
else
echo "Erro"
fi
exit

8. Re: Data em 12 horas [RESOLVIDO]

Enviado em 01/05/2010 - 18:40h

Pensei que querias a reposta apenas com case... E testastes os anteriores??? Aqui funcionou muito bem... Falow e boa Sorte...

10. Re: Data em 12 horas [RESOLVIDO]

Enviado em 03/05/2010 - 01:10h

Tópico resolvido

Obrigado pela ajuda

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder