Я выполняю следующий скрипт, чтобы узнать, есть ли прибыль или убыток от введенной цены продажи и себестоимости:
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
Скрипт возвращает Profit, даже если $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