2016-11-19 1 views
3

Ich mache ein Bash-Skript in Vim-Editor für meine Betriebssysteme Grundlagenklasse, und ich habe eine extrem einfache, aber frustrierende Fehler auftreten, wo ich nicht zusammen Variablen hinzufügen und einstellen kann Summe zu einer anderen Variable. Ich habe verschiedene Formate ausprobiert, um das zu erreichen, aber es druckt entweder jeden Wert oder einen ": nicht gefunden" -Fehler aus. Hier ist der Code, den ich bisher habe, ich möchte einfach die Summe der Werte für jeden Test in die Variable 'finalgrade' setzen und die Ausgabe ausdrucken.Hinzufügen von Zahlen in Bash-Skript sagt "nicht gefunden"

echo "Enter assignment mark (0 to 40): " ; read assignment 
echo "Enter test1 mark (0 to 15): " ; read test1 
echo "Enter test2 mark (0 to 15): " ; read test2 
echo "Enter final exam mark (0 to 30): " ; read exam 
finalgrade = $assignment + $test1 + $test2 + $exam 
echo "Your final grade is : "$finalgrade 

Dies ist ein Beispiel dafür, was ich bekomme, wenn ich es laufen:

$ sh myscript 
Enter assignment mark (0 to 40): 
1 
Enter test1 mark (0 to 15): 
2 
Enter test2 mark (0 to 15): 
3 
Enter final exam mark (0 to 30): 
4 
myscript: 5: myscript: finalgrade: not found 
Your final grade is : 

ich erwartet hatte, anstatt die letzte Zeile zu sein:

Your final grade is : 10 

Danke,

Antwort

3

Diese Linie

finalgrade = $assignment + $test1 + $test2 + $exam 

führt keine Mathematik durch. Googeln "Bash Mathe" wird verschiedene Möglichkeiten bieten, dies zu tun, aber hier ist einer;

finalgrade=$((assignment + test1 + test2 + exam)) 

Es ist erwähnenswert, dass Ihr eigentliches Problem ist, dass Sie Räume neben der Zuordnung = haben, die bash verursacht dies als Befehl „finalgrade“ zu interpretieren, anstatt eine Zuweisung (nicht gefunden). Variablenzuweisungen dürfen keine Leerzeichen neben = enthalten.

Verwandte Themen