关于计算器脚本问题的建议

advice with script issues with calculator

我希望我的脚本能得到一些帮助。它是一个 gpa 计算器,可以计算出平均绩点,然后输入 99 分。 这是我目前所拥有的

#! /bin/bash
sum=0
count=1

read -p "Enter A Grade Point: " grade
while (( $(echo "$grade != 99" | bc) )); do


    count=$(( count + 1 ))
    sum=$(echo "scale=2;($sum+$grade)" | bc)
    read -p "Enter A Grade Point: " grade
        if [[ "$grade" == 99 ]]; then
    break
        fi
    exit 1
    done
    avg=$(echo "scale=2;($sum/$count)" | bc)
         if (( avg < 4  )); then
                echo "Your GPA is $avg"
                echo "This is an B!"
         elif
            (( avg < 3  )); then
                echo "Your GPA is $avg"
                echo "This is a C!"
         elif
            (( avg < 2  )); then
                echo "Your GPA is $avg"
                echo "This is a D!"
         elif
            (( avg < 1  )); then
            echo "Your GPA is $avg"
            echo "This is a F!"
         else
            echo "Your GPA is $avg"
            echo "This is a A!"
         fi
         exit 0

我没有 bc 命令来检查这段代码,但试试这个。

#!/bin/bash
sum=0
count=1

read -p "Enter A Grade Point: " grade
while (( $(echo "$grade != 99" | bc) ))
do
    count=$(( count + 1 ))
    sum=$(echo "scale=2;($sum+$grade)" | bc)
    read -p "Enter A Grade Point: " grade
done
    avg=$(echo "scale=2;($sum/$count)" | bc)
         if (( $(echo "$avg 4" | awk '{print ( < )}') )); then
                echo "Your GPA is $avg"
                echo "This is an B!"
         elif
            (( $(echo "$avg 3" | awk '{print ( < )}') )); then
                echo "Your GPA is $avg"
                echo "This is a C!"
         elif
            (( $(echo "$avg 2" | awk '{print ( < )}') )); then
                echo "Your GPA is $avg"
                echo "This is a D!"
         elif
            (( $(echo "$avg 1" | awk '{print ( < )}') )); then
            echo "Your GPA is $avg"
            echo "This is a F!"
         else
            echo "Your GPA is $avg"
            echo "This is a A!"
         fi
         exit 0
#!/bin/bash
sum=0
count=1
read -p "Enter A Grade Point: " grade
while [ $grade != 99 ]
do
count=$(( count + 1 ))
sum=$(echo "scale=2;($sum+$grade)" | bc)
read -p "Enter A Grade Point: " grade
echo "entered loop"
done
avg=$(echo "scale=2;($sum/$count)" | bc)
     if [[ $avg < 4  ]]
     then
     echo "Your GPA is $avg"
     echo "This is an B!"
     elif [[ $avg < 3 ]]
     then
     echo "Your GPA is $avg"
     echo "This is a C!"
     elif [[ $avg < 2  ]]
     then
     echo "Your GPA is $avg"
     echo "This is a D!"
     elif [[ $avg < 1  ]]
     then
     echo "Your GPA is $avg"
     echo "This is a F!"
     else
     echo "Your GPA is $avg"
     echo "This is a A!"
     fi

不确定程序的逻辑,但现在应该排除错误。请检查