【发布时间】:2017-07-30 03:33:06
【问题描述】:
第 8,11,14,17 行出现错误。 该程序是
#!/bin/sh
read a
b=$(grep -i $a TeamScore.txt| awk 'BEGIN{FS =" "}{print ($2+$4)/2}')
echo "the avg is $b"
if [ "$b" -ge 80] #line8
then
echo "1st class "
elif [ "$b" -lt 80 ] || [ "$b" -ge 70 ] #line11
then
echo "2nd class"
elif [ "$b" -lt 70 ] || [ "$b" -ge 60 ] #line14
then
echo "3rd class"
elif [ "$b" -lt 60 ] #line17
then
echo "fail"
else
echo "code not working"
fi
我是 unix 和 shell 脚本的新手,我想知道哪里出了问题,我该如何解决它。TeamScore.txt 包含一个名称和他们的分数表(用于 2 次考试)。
【问题讨论】:
-
将您的脚本复制粘贴到shellcheck.net 并修复出现的错误。
-
@aicastell
test命令看不到引号,它们是由 shell 处理的。应该没什么区别。 -
请记住,所有 CLI 参数都是字符串。如果需要,由应用程序将它们解释为数字。