正是它所说的。我正在尝试根据书中的问题编写一个简单的 bash 脚本。我正在尝试使用 case 语句,并且据我所知,我正在正确使用它。但是,我不断收到“意外令牌'$'in\r' case $i in 附近的语法错误。
不知道为什么。我也确定我的代码中还有其他问题,因为这是我的第一个脚本。case 语句在第 10 行。随意更正任何其他内容,最终程序将为学生成绩构建一个成绩数据文件,使用简单的 awk 脚本计算成绩的平均值,并将所有内容放入输出文件中。
function getStudentData () {
i=0
while [ $i<5 ]
do
case $i in
[0]) echo -n "Enter student name\n"
read name
;;
[1]) echo -n "Enter Quiz grade\n"
read quiz
checkLimits $quiz
;;
[2]) echo -n "Enter homework grade\n"
read hw
checkLimits $hw
;;
[3]) echo -n "Enter midterm grade\n"
read midterm
checkLimits $midterm
;;
[4]) echo -n "Enter Final grade \n"
read final
checkLimits $final
;;
esac
done
}
function checkLimits ($grade) {
if [ grade <= 100 || grade >= 0 ]; then
$i--
fi
}
if [ $# -lt 2 ]; then
echo "Incorrect number of arguments"
exit 1
fi
#Check awk existance
if [ ! -e $2 ]; then
echo "Error, .awk file does not exist"
exit 1
fi
#flag for data file existing, and awk file
flag=0
#Check for data file existing
if [ ! -e $1 ];then
flag=0
else
flag=1
fi
ans="yes"
while [ $ans == "yes" || $ans == "y" ]
do
echo "Do you want to enter a student record?"
read ans
if [ $ans == "y" || $ans == "yes" ];then
getStudentData
else
echo "we done"
exit 1
fi
done