关于计算器脚本问题的建议
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
不确定程序的逻辑,但现在应该排除错误。请检查
我希望我的脚本能得到一些帮助。它是一个 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
不确定程序的逻辑,但现在应该排除错误。请检查