Ubuntu bash 如果小于其他条件则返回错误 [: -lt: 预期参数

Ubuntu bash 如果小于其他条件则返回错误 [: -lt: 预期参数

我正在执行以下脚本来了解输入的销售价格和成本价是否盈利或亏损;

echo enter selling price
read sprice
echo enter costprice
read cprice

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

它始终返回Profit错误代码,例如;

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

可能是什么原因?我该如何解决这个问题?

答案1

将变量更改$cp$cprice您在该行中读到的内容read cprice

echo enter selling price
read sprice
echo enter costprice
read cprice

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

$sprice即使与具有相同的值,脚本也会返回利润$cprice,因此为了准确,将以下几行添加到您的脚本中:

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

因此最终结果如下:

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

相关内容