• Shell编程练习(一)——ping一下


    学习了一段时间的shell编程,发现还是比较容易上手的,果然有了一定的C语言基础其他都好办!

    某天突发奇想,想要用自己学过的shell语言来编写一个脚本,实现查看EI的FTP服务器是否在工作的功能。虽说可以直接登录试试就知道结果,但是也是为了好玩,也是顺便实践一下。PS:能够拿自己刚学会的知识来成功处理一个问题是一个很棒的过程!!

    废话不多说,开始记录我编写这样一个shell脚本的全过程:

    主体思路:想要确定一个服务器是否在正常工作,最简单的测试方法就是ping一下,如果ping完之后被ping的服务器能返回相同的ping数据包则表示它正常。(先要了解ping这个命令有什么用法,具体参考http://ei.vstu.cn/forum.php?mod=viewthread&tid=242

    尝试一:程序实现如下


    运行脚本后得到结果:


    结果是一直显示数据包信息,而且还要手动用Ctrl+C中断,非常不方便。

    尝试二:程序实现如下


    使用参数-c之后,限定了回应的次数,运行脚本结果如下:

    可以实现自动停止ping,但是依旧显示出来太多东西,运行结果不是很友好,不太像一个程序。

    尝试三
    :在ping后再加上参数-q,意思是不显示指令执行过程,开头和结尾的相关信息除外(蛋疼的地方)

    结果如下:

    显示出来的信息越来越少,好样的!!

    尝试四:有没有办法然它直接显示“EI FTP Server is working normally...”。想到这里,第一感觉是让ping在后台运行就好了吧。
    于是又接着修改代码:

    运行结果如下:

    情况跟自己想的不一样,这一次脚本是执行了,但是需要按Enter后终端提示符才会再次出来。。。。然后尝试过命令行用括号括起来,后面是&符号,结果依旧。。。。

    尝试五:又想到shell中执行命令行的返回值(主要是预定义特殊变量$?),运行成功则返回0。再次尝试一下吧,在先前的基础上修改程序如下:

    运行结果,You are so amazing!!!


    待激动冷却之后,冷静下来,这程序还是不够科学。。。要是ping不通的话,照样有返回值,照样显示服务器正常工作

    尝试六
    :加个判断语句来改善以上问题,修改之后的程序:

    做的过程中发现前几次尝试脚本的第一行就写错了,指定脚本类型那一行。。。不过在运行脚本的时候直接指定了使用bash来解析脚本,所以没有提示错误!
  • 相关阅读:
    JSON 串 自定义解析字段
    JspWriter与PrintWriter的关系
    Map 根据value 排序
    Log4j NDC MDC
    stray '/241' in program 错误
    【Qt开发】修改源码文件的编码格式的小技巧 .
    Tomcat 虚拟目录映射
    《疯狂Java讲义精粹》读书笔记4 基本包装类
    《疯狂Java讲义精粹》读书笔记8 不可变类
    《疯狂Java讲义精粹》读书笔记9 接口
  • 原文地址:https://www.cnblogs.com/11hwu2/p/3713436.html
Copyright © 2020-2023  润新知