IMC

1. IMC

Gustavo
RS23

(usa Ubuntu)

Enviado em 16/04/2010 - 01:48h

Calcular o IMC conforme o sexo

Só que não encontro um jeito de entar com o sexo na forma de string (letra)

Por exemplo sexo = F

O shell acusa um erro dizendo que o sexo tem que ser inteiro

Qual seria a melhor forma de fazer este script?

#!/bin/bash

read -p "Entre com o sexo (M ou F): " sexo
read -p "Entre com o peso: " peso
read -p "Entre com a altura: " altura


IMC=$( echo "($peso / $altura * $altura)" | bc)

echo "$IMC"

#Sexo feminino
if [ $sexo -eq 'F' -a $IMC -lt 19 ]
then
echo -ne "Abaixo do peso"
elif [ $sexo -eq 'F' -a $IMC -gt 19 -a -le < 23.9 ]
then
echo -ne "Normal"
elif [ $sexo -eq 'F' -a $IMC -gt 24 -a -le < 28.9 ]
then
echo -ne "Obesidade leve"
elif [ $sexo -eq 'F' -a $IMC -gt 29 -a -le < 38.9 ]
then
echo -ne "Obesidade moderada"
elif [ $sexo -eq 'F' -a $IMC -ge 39 ]
then
echo -ne "Obesidade morbida"
fi

#Sexo masculino
if [ $sexo -eq 'M' -a $IMC -lt 20 ]
then
echo -ne "Abaixo do peso"
elif [ $sexo -eq 'M' -a $IMC -gt 20 -a -le < 24.9 ]
then
echo -ne "Normal"
elif [ $sexo -eq 'M' -a $IMC -gt 25 -a -le < 29.9 ]
then
echo -ne "Obesidade leve"
elif [ $sexo -eq 'M' -a $IMC -gt 30 -a -le < 39.9 ]
then
echo -ne "Obesidade moderada"
elif [ $sexo -eq 'M' -a $IMC -ge 40 ]
then
echo -ne "Obesidade morbida"
fi

exit 0


  


2. Re: IMC

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/04/2010 - 04:46h

Bem não sei o seu nível mais ai vai... sem muitas modificações...



#!/bin/bash

read -n 1 -p "Entre com o sexo (M ou F): " sexo; echo
read -p "Entre com o peso: " peso; echo
read -p "Entre com a altura: " altura; echo


IMC=$( echo "( $peso / ${altura}^2 ) " | bc -l | cut -c -5)
NIMC=$( echo "($IMC * 100)" | bc | cut -d '.' -f 2)
echo "$NIMC"

# Sexo feminino
if [ $sexo = 'F' ]; then
if [ $NIMC -lt 1900 ]
then
echo -ne "Abaixo do peso"

elif [ $NIMC -ge 1900 -a $IMC -le 2390 ]
then
echo -ne "Normal"

elif [ $NIMC -gt 2400 -a $IMC -le 2890 ]
then
echo -ne "Obesidade leve"

elif [ $NIMC -gt 2900 -a $IMC -le 3890 ]
then
echo -ne "Obesidade moderada"

elif [ $NIMC -ge 3900 ]
then
echo -ne "Obesidade morbida"
fi
fi

if [ $sexo = 'M' ]; then
if [ $NIMC -lt 2000 ]
then
echo -ne "Abaixo do peso"

elif [ $NIMC -gt 2000 -a $NIMC -le 2490 ]
then
echo -ne "Normal"

elif [ $NIMC -gt 2500 -a $NIMC -le 29900 ]
then
echo -ne "Obesidade leve"

elif [ $NIMC -gt 3000 -a $NIMC -le 3990 ]
then
echo -ne "Obesidade moderada"

elif [ $NIMC -ge 4000 ]
then
echo -ne "Obesidade morbida"

fi
fi


3. Re: IMC

Gustavo
rs23

(usa Ubuntu)

Enviado em 19/04/2010 - 14:57h

./.ronin

Obrigado pela ajuda.





4. Re: IMC

Perfil removido
removido

(usa Nenhuma)

Enviado em 20/04/2010 - 09:23h

Então marque o tópico como respondido... para que eu fique muito agradecido ao Sr. também...
:)


5. Re: IMC

Gustavo
rs23

(usa Ubuntu)

Enviado em 20/04/2010 - 15:00h

Tópico resolvido








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts