SHELL笔记:-if-else,case练习
来源:互联网 发布:云计算格局 编辑:程序博客网 时间:2024/05/21 10:53
编写一段 shell 程序完成:根据从键盘输入的学生成绩,显示相应的成绩标准,也可以同时输入多个成绩,最多为5 个,以空格分隔。
要求:
1.分出不及格、及格、中、良和优秀等.
2.要有对*.?分的识别能力.
3.如果是多个成绩需要从高到低进行显示.
4.所使用的shell 语句不限.
5.以程序行数最少为最佳.
代码:
#!/bin/sh#function:将学生成绩进行分类,并将分类结果做一个从大到小的排列。#学生分数可以是整数,浮点数,可以识别出*,&,$等特殊字符check_num () {var1=$(echo $1 | bc 2>/dev/null) if [ "$var1" != "$1" ] #不是数字thenret=5elif [ `echo "$var1 < 0 || $var1 > 100" | bc 2>/dev/null` -eq 1 ] #数字超过范围 then ret=0elif [ `echo "$var1 < 60" | bc 2>/dev/null` -eq 1 ] #不及格then ret=1elif [ `echo "$var1 < 85" | bc 2>/dev/null` -eq 1 ] #及格then ret=2elif [ `echo "$var1 < 95" | bc 2>/dev/null` -eq 1 ] #优秀then ret=3else ret=4 #非常优秀fireturn $ret}get_para() {for var in $* #0:这种格式是为了便于排序do{case "$var" in *\?*) echo "0: $var :含有?号。" continue ;; *\&*) echo "0: $var :含有&号。" continue ;; *\**) echo "0: $var :含有*号。" continue ;; *\$*) echo "0: $var :含有$号。" continue ;;esac check_num $var case "$?" in "0") echo "0: $var: 该数字超过0-100范围。";; "1") echo "$var: 不及格。";; "2") echo "$var: 及格。";; "3") echo "$var: 优秀。";; "4") echo "$var: 非常优秀。";; "5") echo "0: $var :这不是数字。";; *) echo "0: $var :??";; esac}done}while truedo{echo "请输入学生成绩序列(-1退出):"read numsnpara=$(echo "$nums" | wc -w)if [ 5 -lt $npara ]then echo "参数个数大于5!"continuefiif [ "$nums" = "-1" ]then echo "Goodbye."breakfiget_para "$nums" | sort -nr -t : -k 1,1}doneexit 0
结果抓图:
- SHELL笔记:-if-else,case练习
- shell if else case用法DEMO
- shell 脚本-case和if else用法
- Linxu Shell 学习笔记(八)-- if else 与 case esac语句
- 第二章:shell结构化语句 if else & case
- linux shell编程 if else 语句,case语句
- if.....else if .....else 与switch....case.....
- Shell练习-2(控制语句,if else,for,while)
- if-else 语句练习
- Sqlserver if else case when
- switch case 与 if else
- SqlServer if else和case
- if else 与 switch case
- if...else和switch..case
- if else和switch case
- shell if else
- shell if else
- Shell if else语句
- Android开发:EditText和ListView或GridView同时使用,输入法自动跳出来的 解决办法
- 设计模式之0——简单工厂模式
- 杂谈 查看公司源码有感
- Better Me
- c++ string风格
- SHELL笔记:-if-else,case练习
- java笔记
- fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- Silverlight安装
- Solr与数据库结合实现全文检索
- 合并数据Merge
- c++分配空间
- 稀薄、空洞、陌生、一个人
- mysql 存储过程编程