2017-09-27 10 views
-1

私のスクリプトで助けを得ることができたと思っていました。成績ポイントの平均を吐き出して99で割るgpa計算機が入力されます。 これは私がこのコードを確認するには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 
     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 
+0

あなたが直面している問題は何ですか? –

+0

コードを実行しているときに算術トークンエラーが発生しました。また、99が入力された後にループを終了するためにブレークを入力する場所がわかりません! – mncra7

+0

99を入力すると、それが壊れていませんか? –

答えて

0

です。

#!/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 ($1 < $2)}'))); then 
       echo "Your GPA is $avg" 
       echo "This is an B!" 
     elif 
      (($(echo "$avg 3" | awk '{print ($1 < $2)}'))); then 
       echo "Your GPA is $avg" 
       echo "This is a C!" 
     elif 
      (($(echo "$avg 2" | awk '{print ($1 < $2)}'))); then 
       echo "Your GPA is $avg" 
       echo "This is a D!" 
     elif 
      (($(echo "$avg 1" | awk '{print ($1 < $2)}'))); 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 
+0

私はそれを試しましたが、エラーが発生します "sysntaxエラー:無効な算術演算子 – mncra7

+0

私は更新しました – mathB

+0

更新されたコードを試した後に得たもの (:2.16 -lt 4:構文エラー:無効な算術演算子(エラートークンは ".16 -lt 4") – mncra7

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 

ないプログラムのロジックに確認してくださいが、エラーは今、削除する必要があります。ご確認ください