![Ubuntu bash si la condición es menor que otra cosa que devuelve el error [: -lt: argumento esperado](https://rvso.com/image/1083729/Ubuntu%20bash%20si%20la%20condici%C3%B3n%20es%20menor%20que%20otra%20cosa%20que%20devuelve%20el%20error%20%5B%3A%20-lt%3A%20argumento%20esperado.png)
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