当前位置:  技术问答>linux和unix

请问能不能帮我改一下这个程序?我要输出重定向并可以用小数

    来源: 互联网  发布时间:2016-10-14

    本文导语:  编写一段bash shell程序,完成:根据从键盘输入的学生学号、成绩,通过计算成绩的等级后,把学生学号、成绩、成绩等级记录在mark.txt文件中。其中60分以下为“Failed!”,60-70分为“Passed!”,70-80分为“Medium!”,80-90分...

请问能不能帮我改一下这个程序?我要输出重定向并可以用小数[图片]
请问能不能帮我改一下这个程序?我要输出重定向并可以用小数[图片]
编写一段bash shell程序,完成:根据从键盘输入的学生学号、成绩,通过计算成绩的等级后,把学生学号、成绩、成绩等级记录在mark.txt文件中。其中60分以下为“Failed!”,60-70分为“Passed!”,70-80分为“Medium!”,80-90分为“Good!”,90-100为“Excellent!”。如果输入超过100的分数,则显示错误分数提示。 

|
这道题 用AWK做非常简单, 跟写C语言差不多

#!/bin/bash

echo -n "please input a score: "
read i
echo "$i" | awk '
{
    if($1~/^[0-9]+(.[0-9]+)*$/)
    {
        if($1 >= 90)
            print $1, "Excellent!"
        else if($1 >= 80)
            print $1, "Good!"
        else if($1 >= 70)
            print $1, "Medium!"
        else if($1 >= 60)
            print $1, "Passed!"
        else
            print $1, "Failed!"
    }
    else
        print "invalid input"
}'



重定向错误输出的语法为 2>/dev/null

|
ret=$(echo "$score>=60" | bc)
if [ $ret -eq 1 ]; then
   echo "passed"
else
   echo "failed"
fi

|
read i
if [ `echo "$i" | sed 's/[0-9.]//g'` ]
then
    echo "invalid input"
    exit
fi
if [ `expr $i >= 60` -ne 0 ]
then
    echo "pass"
else
    echo "fail"
fi

|
引号可以省略, 那句话用sed的regular expression 对输入做简单的验证, 保证输入的是数字格式

|
if [ `echo "$i" | sed 's/[0-9.]//g'` ]
把$i里面所有的0~9的数字还有小数点都删掉,如果还有字符剩下,就认为输入非法

|

    
 
 

您可能感兴趣的文章:

  • java问题,请问有没有控制输出小数点后两位的函数?
  • 请问一下 如何在STRING中定位一个小数点?
  • 请问如何控制float小数的打印输入
  • 请问,JAVA里有什么可以将一个数字截取到小数点后第二位后的函数么?谢谢
  • 请问如何动态命名重定向输出文件名,并将内容输出到该文件?
  • 急!!请问如何将输入的INT或LONG型的数据按位(十进制)数输出,日期型按照如1988年12月12日 3点50分输出???
  • [新手提问]请问在命令行下追踪程序输出信息的方法
  • 请问这是怎么回事?NOW='date';echo $NOW;输出的是date,' '不是可以将命令的输出设为另一命令的参数吗?
  • 请问在JAVa中如何输出引号
  • 请问:怎么提取标准输出(stdout)的内容到别的地方显示?
  • 请问如何捕获"tar"命令的标准错误输出
  • 高分请问:用了System.setOut()后怎样才能恢复到默认输出状态?
  • 请问如何在jsp页面中用class在网页上输出信息?100分
  • 请问一个有关cron输出的问题
  • 请问如何将标准输出重定向到标准输入?
  • 请问如何在程序中获得shell命令输出的信息?
  • 请问能否将内核中的printk定向输出到一个指定的文件??
  • 请问skyyoung关于输出输出流如何写进该URL文件
  • Servlet高手急救:欲从servlet输出图形,请问linux环境下如何配置,web服务器为tomcat
  • 请问在Java中如何设置自动完成花括号输出
  • 请问,怎么把某个程序的输出赋给shell变量??
  • 请问各位大侠:如何将标准输出定位到套接字?
  • 请问在servlet中用out.println输出的html可不可以用javascript写方法,如果可以,怎么用
  • 请问我怎么将字符串按二进制方式输出?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问玩过SOLARIS的高手门,在不正常关机后,就不能启动到windows公用桌面了,只能在命令提示模式下了,请问怎么解决这个问题啊?急~!~!
  • 请问我的linux在启动时突然说不能启动xwindows了,请教原因?
  • 请问那些linux信号是不能捕捉的?
  • 请问javaBean能不能进行非本机的socket连接
  • 请问SCIS硬盘能不能GHOST?
  • 请问怎样编程获得本机的MAC地址?还有能不能设置本机MAC地址?
  • 请问solaris不能telnet远程登陆???,该怎么办???
  • 请问网卡为什么不能激活
  • 请问为何fopen()函数不能正确打开文件。
  • 请问能不能在有windows的机器上安装linux
  • 请问linux系统能不能限制用户的cpu使用上限
  • 请问各位老师fedora 8下不能出声音,怎么解决?
  • 请问在 redhat 8 kde 下面写 shell 文件怎么不能双击运行?
  • 我的系统硬盘有一个block坏了,系统不能正常启动,请问如何能启动设备?
  • 不知为何?使用aclocal不能生成aclocal.m4文件?请问是什么原因?
  • 请问realplayer 怎么不能使?
  • 请问,为什么我的普通用户都不能进行登陆了?
  • 请问不能su到某一用户的问题。
  • 请问为什么我的sourceinsight 不能看.cc的文件?
  • 请问:linux2.4能不能升级到2.6呀
  • 请问:我知道路由器的telnet密码,但忘记了enable 密码,请问如何是好?
  • 请问为何fopen()函数不能正确打开文件。 iis7站长之家
  • 请问最新的reahat9.0是基于什么核心的?2.4?2.6?请问那里能下载?
  • 请问:请问哪里有关于linux基本操作命令讲解的资料下载,最好是幻灯片格式的.
  • 请问,我试图用#admintool&图形工具命令来安装sun workshop5.0,为什么进入的却是用户管理界面?请问具体该如何在solaris下安装应用软件
  • 请问在Redhat 9里,我从登录就是图形介面,请问如何在图形介面内进入命令行方式呢,谢谢
  • 请问:我在redhat下装了bochs-2.2.1-1.rpm,.装了后,想设置一下,但找不到bochsrc.fda.bxrc,请问这个文件在哪个曰录下啊。
  • 请问:在配置Qt时,很多文档都说在.profile,.login里加东西,但是我好像没有发现有这两个文件上,请问这些文件在哪个目录下啊
  • 请问:在GCC里的C程序里的变量的声明是不是只能在前面,而且相同类型的变量的声明只能放在一起?如果不是,请问怎么样可以解决这个问题.
  • 请问各位大虾,小弟今天开始学jsp了,这学期我们有java课,所以已经下载了jdk(好象是1.2),请问我的98环境怎么配置jsp环境呀?我的jdk可以运行.java程序,别的我就不知道了....谢谢!
  • 主机是WIN2000,我用的是LUNIX,请问是否可以共享上网? 如果可以请问如何设置? 500分答谢,龟儿食言!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3