mercredi 7 février 2018

Bash Conditional - Gradebook proble

So I need to take the average of 5 grades and display that final average as a letter grade (10 point scale...). We are NOT allowed to use && and ||, and I keep getting 'integer expression expected' syntax errors for all of my if statements.

If someone feels like pointing me in the correct direction, that would rule. We cannot use case logic yet, but I know that would probably be easier. I seem to keep framing this in python, but can't quite get it to work out.

#!/bin/bash
  2 # Bash shell script to calculate student average
  3 # Usage: ./grade1.sh
  4 
  5 # Declare some integer type variables
  6 declare -i test1
  7 declare -i test2
  8 declare -i test3
  9 declare -i test4
 10 declare -i lab
 11 declare -i sum
 12 
 13 echo
 14 echo "=================="
 15 echo "Grade Calculator  "
 16 echo "=================="
 17 echo
 18 read -p "Enter first name: " firstname
 19 read -p "Enter last name: " lastname
 20 echo
 21 read -p "Enter test score 1: " test1
 22 read -p "Enter test score 2: " test2
 23 read -p "Enter test score 3: " test3
 24 read -p "Enter test score 4: " test4
 25 read -p "Enter lab score: " lab
 26 
 27 sum=$test1+$test2+$test3+$test4+$lab
 28 average=`echo "$sum / 5" | bc -l`
 29 if [ "$average" -ge 90 ]; then
 30     echo "Course grade: A"
 31 fi
 32 if [ "$average" -ge 80 -a "$average" -le 90 ]; then
 33     echo "Course grade: B"
 34 fi
 35 if [ "$average" -ge 70 -a "$average" -le 80 ]; then
 36     echo "Course grade: C"
 37 fi
 38 if [ "$average" -ge 60 -a "$average" -le 70 ]; then
 39     echo "Course grade: D"
 40 fi
 41 if [ "$average" -le 60 ]; then
 42     echo "Course grade: F"
 43 fi
 44 echo
 45 echo "Grade results . . ."
 46 echo "Student name: $firstname $lastname"
 47 echo "Total points: $sum"
 48 echo "Course average: $average"
 49 echo
 50 
 51 exit 0

Aucun commentaire:

Enregistrer un commentaire