Ubuntu bash if lessthan else condição retornando erro [: -lt: argumento esperado

0

Estou fazendo o seguinte script para saber se o lucro ou a perda do preço de venda e preço de custo entrados é como

echo enter selling price
read sprice
echo enter costprice
read cprice

if [ $sprice -lt $cp ]
  then 
    echo Loss
else
  echo Profit
fi

O tempo todo, ele está retornando Profit , com um código de erro, como;

:~/shell$ sh shellb.sh
enter selling price
10
enter costprice
20
shellb.sh: 6: [: -lt: argument expected
Profit

qual pode ser o motivo e como posso corrigir isso?

    
por blasteralfred Ψ 13.10.2014 / 07:29

1 resposta

0

Altere a variável $cp para $cprice , que é o que você lê na linha que diz read cprice .

echo enter selling price
read sprice
echo enter costprice
read cprice

if [ $sprice -lt $cprice ]
  then 
    echo Loss
else
    echo Profit
fi  

O script retorna Lucro mesmo que $sprice tenha o mesmo valor que $cprice , portanto, para ser preciso, adicione essas linhas ao seu script:

elif [ $sprice -eq $cprice ]  
  then   
    echo Break\ even

Então, o que você acaba é:

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
    
por karel 13.10.2014 / 07:34