程序的原型来自于经典的<<Linux程序设计(第3版)>>,有用Shell编程实现的版本,有用C编程实现的版本。用C编程有多种方式,有用curses库实现的,有用ndbm数据库实现的,有用MySQL数据库实现的,后来还加了简单的图形界面(GTK+或Qt编写的)。程序都比较长,用到大量的库函数和系统调用。因此,这里我重点剖析了一下用Shell编程实现的版本,并做了一点小小的修改。Shell编程实现的程序最简单,也易于理解,分析起来方便。同样的功能用C来实现时可能需要大量的代码和一大堆的库函数调用,特别在涉及到输入输出的重定向时,由于Shell可以结合很多命令并用管道重定向,因此代码可能只需几行就可以了。
程序如下(看不清的话可以让浏览器增大字符的显示):