Data em 12 horas [RESOLVIDO]

1. Data em 12 horas [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

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




  


2. MELHOR RESPOSTA

Perfil removido
removido

(usa Nenhuma)

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]

Perfil removido
removido

(usa Nenhuma)

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{TTEXTO}33[05m${SALDACAO}!{TTEXTO}33[0;m\n$(date) ${PP}\n";

exit


4. Re: Data em 12 horas [RESOLVIDO]

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

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]

Gustavo
rs23

(usa Ubuntu)

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]

Perfil removido
removido

(usa Nenhuma)

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]

Gustavo
rs23

(usa Ubuntu)

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]

Perfil removido
removido

(usa Nenhuma)

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...


9. AM e PM

José Lucas Ferreira
JoseLucas

(usa Ubuntu)

Enviado em 02/05/2010 - 00:35h

Estas siglas significam Ante Meridiem e Post Meridiem, do latim, para antes do meio dia e depois do meio dia. =D
http://en.wikipedia.org/wiki/12-hour_clock


10. Re: Data em 12 horas [RESOLVIDO]

Gustavo
rs23

(usa Ubuntu)

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

Tópico resolvido

Obrigado pela ajuda






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts