M4iir1c10
(usa Arch Linux)
Enviado em 15/12/2008 - 09:39h
Sabe aquele dia que voce tem uma ideia de um script inutil mais voce quer fazer assim mesmo, so pra praticar e acaba se complicando todo?
Pois e eu quero fazer um relogio que mostra as horas em Hexadecimal e horario normal, com o relogio nao tem problema ja esta pronto, so que quando eu coloquei para rodar eu nao gostei de uma coisa, como o relogio normal os numeros sao strings eles sao contados como 01, 02, 03, e assim por diante e os hexadecimais sao integer eles saem como 1,2,3, etc que quero que os numeros menores que 10 sejam com o 0 antes deles. aqui vai o codigo:
#!/bin/bash
horas=$(date +%H)
hexhoras=$(echo 'obase=16; ibase=10; '$horas | bc)
minutos=$(date +%M)
hexminutos=$(echo 'obase=16; ibase=10; '$minutos | bc)
Segundos=$(date +%S)
hexSegundos=$(echo 'obase=16; ibase=10; '$Segundos | bc)
tudo=$(echo "$hexhoras:$hexminutos:$hexSegundos")
tudo2=$(echo "$horas:$minutos:$Segundos")
echo $tudo
echo $tudo2
e aqui uma tentativa que falhou:
#!/bin/bash
horas=$(date +%H)
hexhoras=$(echo 'obase=16; ibase=10; '$horas | bc)
if [ $hexhoras -lt "10" ];then
let hexhoras=$(echo "0$hexhoras");
fi
minutos=$(date +%M)
hexminutos=$(echo 'obase=16; ibase=10; '$minutos | bc)
if [ $hexminutos -lt "10" ];then
let hexminutos=$(echo "0$hexminutos");
fi
Segundos=$(date +%S)
hexSegundos=$(echo 'obase=16; ibase=10; '$Segundos | bc)
if [ $hexSegundos -lt "10" ];then
let hexSegundos=$(echo "0$hexSegundos");
fi
tudo=$(echo "$hexhoras:$hexminutos:$hexSegundos")
tudo2=$(echo "$horas:$minutos:$Segundos")
echo $tudo
echo $tudo2
Nos numeros acima de 9 aparecem entre A e F
3B: integer expression expected
16:25:3B Hexa
22:37:59 Normal
nos numeros menores que 10 aparece assim como o que estou rodando agora:
16:26:2 Hexa
22:38:02 Normal
Alguem pode me iluminar aqui? oque eu posso fazer pra corrigir isso?