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改成变量的形式就对了
难道是常量和变量不能同时出现在同一个表达式中吗,想知道为什么会这样
我在linux下使用bash情况下是正常的。
确认你的用户是bash。
另外,sh脚本的第一行应该是 #!/usr/bin/bash (具体看你的环境)
[root@curating tcode]# vim t.sh
!/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
"t.sh" [New] 16L, 349C written
[root@curating tcode]# sh t.sh
t.sh: line 1: !/bin/bash: No such file or directory
请输入你的成绩
98
你的成绩等级:A
[root@curating tco
[root@curating tcode]# which bash
/usr/bin/bash
[root@curating tcode]# cat t.sh
#!/usr/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