利用非交付式方式运行交互式程序
为了提高软件运行的灵活性,应用程序往往需要提供一些跟用户交流的窗口.其实在Unix操作系统中,许多命令本身就带有交互式程序的功能.如在删除一个文件夹时,如果这个文件夹中存有文件或者子文件夹,则系统就会提示用户是否需要删除这个文件或者子文件夹.这可以防止用户 一、在交互式程序中使用<<符号. 查找命令可能是Unix系统中使用的最多的一个命令.如系统工程师可能需要在一个脚本程序中查找是否含有某个关键字等等.以前要实现这个任务,系统工程师不得不依次打开多个目标文件,然后输入需要查找的字符串进行查找.当目标文件数量比较少的时候,这个方法还可以.但是如果当目标文件比较多的时候,这个工作两就有点多了. 查找命令为了提高用户的交互性,往往需要用户在查询数据的时候输入需要查找的字符串已经文件名字等参数.但是在实际工作中系统工程师可能会需要一个查找命名要执行多次,而每次其要查找的内容都是相同的(如上面笔者所描述的一个需求).此时如果系统工程师在旁边等着命令执行结束然后再输入相关的参数,这显然是比较浪费时间的做法.遇到这种情况时,系统工程师需要把这个交互式的程序或者命令利用非交互式的方式运行.显然Unix系统开发者也考虑到了这个内容.故他们开发出了一个<<符号文件可以帮助实现类似的功能. 如上图中,lookforinfo.sh是笔者编写的在一个大文件中查找某个关键字的一个脚本程序. 那么这里的<<文件到底有什么作用呢?<<符号其实表示一个文件,系统工程师往往把它称之为here文件.Shell会使用<<这个符号表示从脚本所在的同一个文件中读取数据.如上图所示,就表示从脚本的同一个文件中读取相关参数,而不是从其他文件(如键盘)中读取数据.通常情况下,任何使用标准数据的命令都可以从here文档中读取相关的参数数据.如上图所示,本来执行lookforinfo.sh程序,需要从键盘中接收查询字符串以及目标文件名两个参数.而此时笔者利用了<<文件,则系统看到了这个关键字之后,就不会再等待笔者键盘上的输入,而直接从here文件中去读取相关的运行参数.为此,当系统每次周期性的运行这个脚本程序时,系统就会自动获取相关的参数,而不用笔者重复的输入.可见,利用here这个文件符号可以让一些交互式的命令采用预先定义好的参数以非交互式的方式来执行.这个特性很有用.如上面笔者就是利用这个功能让系统定期的查询应用程序启动日志,看看是否有错误信息.让系统来帮助系统工程师自动监测 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |