Duvida básica em conta com numeros quebrados [RESOLVIDO]

1. Duvida básica em conta com numeros quebrados [RESOLVIDO]

Julio Cesar
jcesarstef

(usa Slackware)

Enviado em 27/10/2014 - 11:29h

boa tarde, estou com o seguinte script

#####################
B=10240000

if [ "$B" != "0" ];then
echo $B byte
fi
KB=$(($B/1024))
if [ "$KB" != "0" ];then
echo $B bytes
fi
MB=$(($KB/1024))
if [ "MB" != "0" ];then
echo $KB Kbytes
fi
GB=$(($MB/1024))
if [ "GB" != "0" ];then
echo $MB Megabytes
fi

if [ -z = "$GB" ];then
echo $GB eh zero
else
echo $GB nao eh zero
fi
#echo $B $KB $MB $GB
#################

e ele me retorna isso:


10240000 byte
10240000 bytes
10000 Kbytes
9 Megabytes
0 nao eh zero
#############

O meu problema é que ele fala que o numero zero não é zero (?), talvez seja por ele ser um numero quebrado.
Primeramente: eu gostaria de saber como faço para o script poder me mandar os numeros depois da virgula

E tambem gostaria de saber como fazer a operação para utilizar, por exemplo <= (menor ou igual a)

Obrigado


  


2. MELHOR RESPOSTA

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 27/10/2014 - 11:52h

Oi...

Para obter resultados em float você vai precisar utilizar um comando para realizar o calculo



echo "3.5 * 2.1" | bc



No if ( na verdade no comando test [] ) use os parametros para numeros... -le é <=

veja mais aqui: http://www.vivaolinux.com.br/artigo/Programacao-com-Shell-Script?pagina=2

3. Re: Duvida básica em conta com numeros quebrados [RESOLVIDO]

Julio Cesar
jcesarstef

(usa Slackware)

Enviado em 27/10/2014 - 12:21h

echo "1 >2"|bc
0
echo "1 <2"|bc
1

Ai sim, não tinha ouvido falar desse comando..
obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts