SHELL脚本-第一课
绪论
shell脚本是一个复杂应用原型的"quick and dirty" 方法。1Shell编程遵从经典UNIX哲学:把复杂的问题分解成简单的小问题,然后再把各部分功能组合起来解决复杂问题。这和用新一代高级的多用途的语言,例如Perl,试图成为所有人处理所有事情的语言但是所付出的代价是强迫改变你的思维方法来适应这种工具,大多数人认为这是一个更好的或者至少感觉上更令人能接受的方法。
Shell脚本编程可以方便我们自动处理很多事情,但也有些shell脚本编程不适合的应用。
如果遇到以下情况不适合使用shell脚本编程:
- 资源紧张的项目,特别是那些速度是重要因素的地方(排序,散序,等等)
- 程序要进行很复杂的数学计算,特别是浮点计算,任意精度的计算,或者是复数计算(应该用C++或是FORTRAN代替)
- 要求交叉编译平台的可移植性(使用C或者是Java代替)
- 需要结构化编程的复杂应用(需要变量类型检查和函数原型等等)
- 对于影响系统全局性的关键任务应用。
- 安全非常重要。你必须保证系统完整性和抵抗入侵,攻击和恶意破坏。
- 项目由连串的依赖的各个部分组成。
- 多种文件操作要求(Bash被限制成文件顺序存取,并且是以相当笨拙,效率低下的逐行的存取方式)
- 需要良好的多维数组支持。
- 需要类似链表或树这样的数据结构。
- 需要产生或操作图象或图形用户界面。
- 需要直接存取系统硬件。
- 需要端口号或是socket I/O。
- 需要使用可重用的函数库或接口。
- 所有的私有的不开源的应用程序(Shell脚本的源代码是直接可读,能被所有人看到的)
第一个脚本Cleanup
接下来,我们利用一个例子来深入的了解shell脚本编程。
例如:
#!/bin/bash
# Cleanup, 版本 3
# 注意:
# -------
# 这个脚本使用了相当多的特性,这些我们稍后将会解释.
#
# 到那时,你已经学了这本书的一半了ÿ