![Ubuntu Bash, wenn kleiner als, sonst Bedingung, die Fehler zurückgibt [: -lt: Argument erwartet](https://rvso.com/image/1083729/Ubuntu%20Bash%2C%20wenn%20kleiner%20als%2C%20sonst%20Bedingung%2C%20die%20Fehler%20zur%C3%BCckgibt%20%5B%3A%20-lt%3A%20Argument%20erwartet.png)
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