Cálculo com número decimal em shell script

Iniciado por wemersonrv, 21 de Maio de 2011, 12:46

tópico anterior - próximo tópico

wemersonrv

Tenho uma app que gerar um xml com os valores com ponto como separador decimal e estou montando um script que precisa fazer cálculos matemáticos com esses dados, porém... abaixo alguns fragmentos do xml...

arquivo config.xml
<config>
<valor1>10</valor1>
<valor2>0.25</valor2>
</config>


Pego o valor 1
#!/bin/sh

VALOR_1=`sed -n 's/.*<valor1>\(.*\)<\/valor1>.*/\1/p' config.xml`
VALOR_2=`sed -n 's/.*<valor2>\(.*\)<\/valor2>.*/\1/p' config.xml`
VALOR_1=$(VALOR_1 * 2)
VALOR_2=$(VALOR_2 * 2)

echo "Valor 1: $VALOR_1"
echo "Valor 2: $VALOR_2"


Recebo essa mensagem:
shutdown.sh: 6: Illegal number: 0.25

Tentei com vírgula e também não deu...

Como faço pra trabalhar corretamente com separador decimal

irtigor

O bash não suporta aritmética com numero de ponto flutuante, 0.25 é tratado como palavra. Use o bc/perl/etc ou troque o shell.

wemersonrv

Hum... valeu entendido!!!

A sorte é que esses valores são de tempo em minutos... Vou pedir pro pessoal do sistema pra informar os valores em tempo mesmo HH:MM:SS aí eu consigo converter tudo pra segundos e mando bala!!!!