
Estoy haciendo el siguiente script para saber si hay ganancias o pérdidas a partir del precio de venta y el precio de costo ingresados;
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cp ]
then
echo Loss
else
echo Profit
fi
Todo el tiempo, regresa Profit
con un código de error, como;
:~/shell$ sh shellb.sh
enter selling price
10
enter costprice
20
shellb.sh: 6: [: -lt: argument expected
Profit
¿Cuál podría ser el motivo y cómo puedo solucionarlo?
Respuesta1
Cambia la $cp
variable a $cprice
la que es la que lees en la línea que dice read cprice
.
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cprice ]
then
echo Loss
else
echo Profit
fi
El script devuelve Profit incluso si $sprice
tiene el mismo valor que $cprice
, así que para ser preciso, agregue estas líneas a su script:
elif [ $sprice -eq $cprice ]
then
echo Break\ even
Entonces lo que terminas es:
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cprice ]
then
echo Loss
elif [ $sprice -eq $cprice ]
then
echo Break\ even
else
echo Profit
fi