第一章:为什么要有Shell编程?

 

没有一种编程语言是完美的。甚至也没有一种最好的语言;只有一种非常合适或可能非常不合适实际目标的语言。

 Herbert Mayer

脚本应用知识对于希望相当精通系统管理的任何人来说是必需的,即使他实际上并不想写一个脚本程序。一般来说一个Linux机器启动后,它会执行在/etc/rc.d 目录下的Shell脚本重建系统环境并且启动各种服务。理解这些启动脚本的细节对分析系统运作行为并修改它是意义重大的。

编写shell脚本不是很难学,因为脚本内建的功能集(check?)和他们只有相当少的shell的操作符和选项 [1] 需要学。语法非常的简单易懂,就像在命令行上调用和连接软件包一样容易,它仅有一些少量的 "规则" 需要掌握。大多数短小的脚本第一次就工作的很好,即使是较长的脚本调试也相当的容易。

shell脚本是一个复杂应用原型的"quick and dirty" 方法。在项目开发中用shell编程实现一个有限的功能性子集常常是有用的开始。用这种方法去测试应用程序的结构和模块组合,可以在实际地用C,C++,Java或者Perl进行编程之前发现主要的设计缺陷。

Shell编程遵从经典UNIX哲学:把复杂的问题分解成简单的小问题,然后再把各部分功能组合起来解决复杂问题。这和用新一代高级的多用途的语言,例如Perl,试图成为所有人处理所有事情的语言但是所付出的代价是强迫改变你的思维方法来适应这种工具,大多数人认为这是一个更好的或者至少感觉上更令人能接受的方法。

什么时候不适合使用Shell编程:

如果你需要有上面的任意一种应用,请考虑其他的更强大的脚本语言