问题遇到的现象和发生背景
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
运行结果及报错内容
我的解答思路和尝试过的方法
#!/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的形式输出就正确了。
我想要达到的结果
想知道为什么会这样,难道是变量和常数不能出现在同一个表达式中?