高级Bash脚本编程指南(外文文献翻译).docVIP

高级Bash脚本编程指南(外文文献翻译).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级Bash脚本编程指南 一个对脚本编程技术的深入讨论 1:简介 Shell是一个命令解释器。它是操作系统内核和用户之间的绝缘层,也是一种功能强大的编程语言。一个Shell程序,通常被称作为脚本,它是由系统调用,命令工具,软件包和已编译的二进制包结合 起来的容易使用的工具。事实上,shell脚本可以调用整个UNIX系统命令,软件包和工具。如果这还不太够的话,Shell的内部命令,如测试和循环结构,都使得Shell脚本更强大和更有弹性。Shell脚本在管理系统任务中表现得非常出色,在对日常反复性的处理工作中避免使用那些结构复杂的程序语言。 2:为什么要用Shell编程? 脚本应用知识对希望精通系统管理的任何个人说是必需的,他实际上不想写一个脚本程序。一般说一个Linux机器启动后,它会执行在/etc/rc.d 目录下的Shell脚本重建系统环境并且启动各种服务。理解这些启动脚本的细节对分析系统运作并修改它是有很大意义的。 编写shell脚本并不难学,因为脚本内建的功能集(check?)和他们只要学相当少的shell的操作符和选项。语法简单易懂,像在命令行上调用和连接软件包那样容易,它只有少量的 规则 需要掌握。大多数短小的脚本第一次就工作的很好,较长的脚本调试也相当的容易。 shell脚本是个复杂应用原型的quick and dirty 方法。在项目开发中用shell编程实现个有限的功能性子集是有用的开始。用这种方法去测试应用程序的结构和模块组合,可以在实际地用C,C++,Java或者Perl进行编程之前发现主要的设计缺陷。 Shell编程遵从经典UNIX哲学:把复杂的问题分成简单的小问题,然后再把各部分功能组合起来解决复杂问题。这和用新一代高级的多用途的语言,例如Perl,试图成为所有人处理所有事情的语言但是所付出的代价是强迫改变你的思维方法来适应这种工具,大多数人认为这是一个更好的或者至少感觉上更令人能接受的方法。 什么时候不适合使用Shell编程: 资源紧张的项目,特别是速度是重要因素的地方(排序,散序,等等) 程序要进行很复杂的数学计算,特别是浮点计算,任意精度的计算,或者是复数计算(应该用C++或是FORTRAN代替) 要求交叉编译平台的可移植性(使用C或者是Java代替) 需要结构化编程的复杂应用(需要变量类型检查和函数原型等等) 对于影响系统全局性的关键任务应用。 安全非常重要。你必须保证系统完整性和抵抗入侵,攻击和恶意破坏。 项目由连串的依赖的各个部分组成。 多种文件操作要求(Bash被限制成文件顺序存取,并且是以相当笨拙,效率低下的逐行的存取方式) 需要良好的多维数组支持。 需要类似链表或树这样的数据结构。 需要产生或操作图象或图形用户界面。 需要直接存取系统硬件。 需要端口号或是socket I/O。 需要使用可重用的函数库或接口。 所有的私有的不开源的应用程序(Shell脚本的源代码是直接可读,能被所有人看到的) 如果你需要有上面的任意一种应用,请考虑其他的更强大的脚本语言――Perl,Tcl,Python,Ruby,或者可能是其他更高级的编译型语言,例如C,C++或者是Java。尽管如此,使用Shell脚本来构造应用原型仍然是一个有用的开发步骤。 我们将会使用Bash,它是 Bourne-Again shell 的首字母缩写,并且是Setphen Bourne写的经典的Bourne shell的同义词。Bash已经变成了所有令人喜欢的UNIX上shell编程 事实的上的 这本书的大多数脚本技术能很好的应用到其他的Shell当中,比如说Korn Shell,Bash借用了它的一些特性, 还有C Shell和他的不同之处。(注意:C shell编程不是交付一定的内在问题,这点已由Tom Christiansen在1993年10月在 Usenet post 被指出了) 接下来是的是一篇脚本的指南。它由许多的例子来引出Shell的许多特性。这些已经被测试过的例子不仅能工作,并且可能的话某些甚至能用在真正的应用中。读者能让源码文件(scriptname.sh或是 scriptname.bash)的这些例子真正地运行起来, 给他们增加运行权限(chmod u+rx scriptname), 然后运行他们看看运行结果。如果你没有源码包,你仍然可以从HTML, pdf, 或是text 格式版本中复制粘贴代码。注意这些脚本可能在他们被详细解释前提前展示一些特性,这时读者可以暂时忽略这些特性。 3:从一个Sha-Bang(#!)开始 在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表。这至少让你执行它时不必重新按顺序键入相同功能的命令序列。 例子 2-1. cleanup: 一个清空/var/log目录下的

文档评论(0)

嫣雨流纱 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档