快速业务通道

利用非交付式方式运行交互式程序

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-11

为了提高软件运行的灵活性,应用程序往往需要提供一些跟用户交流的窗口.其实在Unix操作系统中,许多命令本身就带有交互式程序的功能.如在删除一个文件夹时,如果这个文件夹中存有文件或者子文件夹,则系统就会提示用户是否需要删除这个文件或者子文件夹.这可以防止用户意外而删除有用的文件.不过有时候这也会造成一定的麻烦.如这个文件夹中可能有100个文件一家300个文件夹,此时如果每次删除一个文件就需要按以下y表示可以删除这个文件,那么就需要按400个y .则这个交互式程序的设计显然会很麻烦.为此在某些特定的情况下,系统工程师可能希望利用非交互式的方式来运行一个交互式程序.

  一、在交互式程序中使用<<符号.

  查找命令可能是Unix系统中使用的最多的一个命令.如系统工程师可能需要在一个脚本程序中查找是否含有某个关键字等等.以前要实现这个任务,系统工程师不得不依次打开多个目标文件,然后输入需要查找的字符串进行查找.当目标文件数量比较少的时候,这个方法还可以.但是如果当目标文件比较多的时候,这个工作两就有点多了.

  查找命令为了提高用户的交互性,往往需要用户在查询数据的时候输入需要查找的字符串已经文件名字等参数.但是在实际工作中系统工程师可能会需要一个查找命名要执行多次,而每次其要查找的内容都是相同的(如上面笔者所描述的一个需求).此时如果系统工程师在旁边等着命令执行结束然后再输入相关的参数,这显然是比较浪费时间的做法.遇到这种情况时,系统工程师需要把这个交互式的程序或者命令利用非交互式的方式运行.显然Unix系统开发者也考虑到了这个内容.故他们开发出了一个<<符号文件可以帮助实现类似的功能.

  如上图中,lookforinfo.sh是笔者编写的在一个大文件中查找某个关键字的一个脚本程序.这个程序比较复杂笔者这里也就不列出来了.以后有机会笔者会像大家解释这个脚本程序.在这个程序运行的时候,需要连个参数,一是需要查找的字符串,二是需要查找的文件.不过笔者在运行这个程序的时候,则加入了<<符号,并且在后面加入了笔者需要查找的关键里以及需要查找的目标文件名.此时笔者运行这个程序的时候,就不需要输入这个两个参数了.笔者现在是每天利用cron命令让其执行一次,看看有没有在这个程序文件中出现start关键字.如果出现的话,则马上通过邮件方式告知笔者.这个run.sh是某个程序启动时的日志文件.当启动出现警告或者错误信息的时候,就会有一个error开头的记录.为此,通过这个每次一次的查询文件(时间设置在这个程序启动后10分钟),笔者在不查看这个日志文件的情况下,就可以知道其启动过程中是否有错误信息.要实现这个功能,<<文件在这里起着至关重要的作用.

  那么这里的<<文件到底有什么作用呢?<<符号其实表示一个文件,系统工程师往往把它称之为here文件.Shell会使用<<这个符号表示从脚本所在的同一个文件中读取数据.如上图所示,就表示从脚本的同一个文件中读取相关参数,而不是从其他文件(如键盘)中读取数据.通常情况下,任何使用标准数据的命令都可以从here文档中读取相关的参数数据.如上图所示,本来执行lookforinfo.sh程序,需要从键盘中接收查询字符串以及目标文件名两个参数.而此时笔者利用了<<文件,则系统看到了这个关键字之后,就不会再等待笔者键盘上的输入,而直接从here文件中去读取相关的运行参数.为此,当系统每次周期性的运行这个脚本程序时,系统就会自动获取相关的参数,而不用笔者重复的输入.可见,利用here这个文件符号可以让一些交互式的命令采用预先定义好的参数以非交互式的方式来执行.这个特性很有用.如上面笔者就是利用这个功能让系统定期的查询应用程序启动日志,看看是否有错误信息.让系统来帮助系统工程师自动监测

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号