Unix/Linux实战:嵌入文档使用攻略

豆豆网   技术应用频道   2007年09月25日  【字号: 收藏本文

内容摘要:Shell编程是Unix/Linux服务器管理和维护的基本功,嵌入文档(Here Documents)技术是BASH脚本语言提供的一个特征,是用于在当前脚本内部处理重定向的一种手段……

  Shell编程是Unix/Linux服务器管理和维护的基本功,嵌入文档(Here Documents)技术是BASH脚本语言提供的一个特征,是用于在当前脚本内部处理重定向的一种手段。由于Unix从设计之初就是遵循“使用小而简单的工具进行无缝的集成”的理念,完成一项工作是需要大量的文本处理工具、流处理工具进行合作,通过标准输入、输出进行连接,将一个工具的处理结果转向另一个工具进行加工,直到得到最终的处理结果。因此,I/O重定向(redirection)是SHELL脚本的一个重要语言特征。但是,重定向技术也使整个处理过程显得凌乱、琐碎,对于初学者往往把握不好重定向的使用时机,甚至滥用重定向,而使得整个脚本里存在大量的中间文件,极大的损害了脚本语言的“优雅”程度。这是SHELL脚本学习过程中的一个常见问题。

  为解决这个问题,SHELL脚本在设计上尽可能的减少中间文件,增加了“Here Documents”这一特征。Here Documents提供了在脚本内部保存原始文件,以及在脚本内部提供重定向的机制,是精简脚本的有效方式,也是反映脚本编程水平的重要特征。在各种资料中“Here Documents”有不同的翻译名称,例如“嵌入文档”、“内部文档”、“现场文档”等等。为了兼顾字面上的相近和使用上的形象,本文使用“嵌入文档”这一名称,并通过若干实例展示这一功能的使用方法。

  一、问题的提出

  事情是这样的,在8月初,笔者负责某信息学竞赛考试服务器的准备和维护工作(http://gait.buaa.edu.cn:8765),在考试结束需要将服务器上的考试成绩数据导出来,发送给竞赛主办方。服务器上安装的竞赛考试系统是在Linux下开发的专用系统,其中保存的成绩数据都是采用自定义格式的文本文件,并且由于系统开发并不是非常完善,没有提供很好的导出成绩的功能。而主办方当然希望看到一个直观的Excel文件的总成绩表。因此,需要紧急的手工处理一下,将服务器上的文本文件转换成Excel表出来。在这种情况下,当然首选的是SHELL脚本文件。

来源:IT168    作者:靳国杰    责编:豆豆技术应用

正在加载评论...