shell编程,expr非整数参数错误

问题遇到的现象和发生背景

shell编程输出成绩等级的程序,运行算术表达式时出现了:“expr非整数参数”的错误。

用代码块功能插入代码,请勿粘贴截图
#!/bin/bash
#filename yan2
points=0
echo "请输入你的成绩"
read points
level=0
level=`expr $points / 10`
case $level in
9) echo "你的成绩等级:A" ;;
10) echo "你的成绩等级:A";;
8) echo "你的成绩等级:B";;
7) echo "你的成绩等级:C";;
6) echo "你的成绩等级:D";;
*) echo "你的成绩等级:E";;
esac


运行结果及报错内容

img

我的解答思路和尝试过的方法
#!/bin/bash
#filename yan2
points=0
echo "请输入你的成绩"
read points
level=0
num=10
level=`expr $points / $num`
case $level in
9) echo "你的成绩等级:A" ;;
10) echo "你的成绩等级:A";;
8) echo "你的成绩等级:B";;
7) echo "你的成绩等级:C";;
6) echo "你的成绩等级:D";;
*) echo "你的成绩等级:E";;
esac

当我把expr表达式那里10改成变量num的形式输出就正确了。

img

我想要达到的结果

想知道为什么会这样,难道是变量和常数不能出现在同一个表达式中?

img


复制你的代码的,你可能输入了未知字符导致你那个结果。正常有空格都可以。