Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: rusogumo en 9 Marzo 2015, 15:40 pm



Título: Operaciones aritmeticas variables bash
Publicado por: rusogumo en 9 Marzo 2015, 15:40 pm
Hola buenas,

Llevo un par de dias dandole vueltas a un error y ya no se como probarlo. Cada vez que quiero hacer operaciones aritmeticas con variables en bash me quedo atascado...

tengo las siguientes variables y una division:

+++++++++++++++++++++++++++++++++++++++++++++++++++++
ramTotal=$(snmpwalk -c $snmp -v 2c $host hrStorageSize.1)
ramUsed=$(snmpwalk -c $snmp -v 2c $host hrStorageUsed.1)
swapTotal=$(snmpwalk -c $snmp -v 2c $host hrStorageSize.10)
swapUsed=$(snmpwalk -c $snmp -v 2c $host hrStorageUsed.10)
cacheUsed=$(snmpwalk -c cuatrero -v 2c srvweblogic hrStorageUsed.7)
echo swapTotal=$swapTotal, swapUsed=$swapUsed, ramTotal=$ramTotal, ramUsed=$ramUsed, cacheUsed=$cacheUsed

ramTotalInt=$(echo $ramTotal|awk '{print $4}')
ramUsedInt=$(echo $ramUsed|awk '{print $4}')
swapTotalInt=$(echo $swapTotal|awk '{print $4}')
swapUsedInt=$(echo $swapUsed|awk '{print $4}')
cacheUsedInt=$(echo $cacheUsed|awk '{print $4}')
echo ramTotalInt=$ramTotalInt, ramUsedInt=$ramUsedInt, swapTotalInt=$swapTotalInt, swapUsedInt=$swapUsedInt, cacheUsedInt=$cacheUsedInt

ramUsedDiv=$(($ramUsedInt / $ramTotalInt))
echo ramUsedDiv=$ramUsedDiv
ramUsedPer=$(($ramUsedDiv * 100))
echo ramUsedPer=$ramUsedPer
+++++++++++++++++++++++++++++++++++++++++++++++++++++

Los echo muestran que las variables se asignan bien, pero a la hora de operar devuelven 0 ¿¿¿¿POR QUE????

+++++++++++++++++++++++++++++++++++++++++++++++++++++
nagios@srvsmc:~/libexec$ ./check_RAM_SWAP srvlogic cuartero
host=srvlogic, snmp=cuartero, warnRAM=
swapTotal=HOST-RESOURCES-MIB::hrStorageSize.10 = INTEGER: 3145724, swapUsed=HOST-RESOURCES-MIB::hrStorageUsed.10 = INTEGER: 272052, ramTotal=HOST-RESOURCES-MIB::hrStorageSize.1 = INTEGER: 16435192, ramUsed=HOST-RESOURCES-MIB::hrStorageUsed.1 = INTEGER: 15825820, cacheUsed=HOST-RESOURCES-MIB::hrStorageUsed.7 = INTEGER: 2657368
ramTotalInt=16435192, ramUsedInt=15825820, swapTotalInt=3145724, swapUsedInt=272052, cacheUsedInt=2657368
ramUsedDiv=0
ramUsedPer=0
+++++++++++++++++++++++++++++++++++++++++++++++++++++

¿Alguien puede guiarme y mostrarme el camino para hacer una simple division en bash???


Título: Re: Operaciones aritmeticas variables bash
Publicado por: rusogumo en 12 Marzo 2015, 12:10 pm
SOLUCIONADO... ERA UN PROBLEMA CON LOS DECIMALES... El resultado es un float y debemos actura de forma diferente para poder mostrar el resultado decimal


Título: Re: Operaciones aritmeticas variables bash
Publicado por: Eleкtro en 12 Marzo 2015, 12:17 pm
Debes utilizar el botón de insertar código para insertar bloques de código, lee y respeta las normas del foro y de este subforo.

Tema cerrado.

Saludos!