
Ich erstelle das folgende Skript, um zu ermitteln, ob sich aus dem eingegebenen Verkaufspreis und dem Selbstkostenpreis ein Gewinn oder Verlust ergibt;
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cp ]
then
echo Loss
else
echo Profit
fi
Es wird ständig Profit
mit einem Fehlercode zurückgegeben, wie:
:~/shell$ sh shellb.sh
enter selling price
10
enter costprice
20
shellb.sh: 6: [: -lt: argument expected
Profit
was könnte der Grund sein und wie kann ich das Problem beheben?
Antwort1
Ändern Sie die $cp
Variable in $cprice
das, was Sie in der Zeile lesen read cprice
.
echo enter selling price
read sprice
echo enter costprice
read cprice
if [ $sprice -lt $cprice ]
then
echo Loss
else
echo Profit
fi
Das Skript gibt Profit zurück, auch wenn $sprice
derselbe Wert wie hat $cprice
. Fügen Sie Ihrem Skript zur Genauigkeit daher die folgenden Zeilen hinzu:
elif [ $sprice -eq $cprice ]
then
echo Break\ even
Das Ergebnis ist also:
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