LINUX & UNIX Shell 编程

作者:Marjorie Richardson
LINUX & UNIX Shell Programming
  • 作者:David Tansley

  • 出版社:Addison-Wesley

  • 电子邮件:info@awl.com

  • 网址:http://www.awl.com/cseng/

  • 价格:$44.95 美元

  • ISBN:0-201-67472-6

  • 评论员:Marjorie Richardson

开始阅读LINUX & UNIX Shell 编程时,我有点困惑,因为我发现自己正在阅读 shell 基础知识,而不是编程。我的结论是,Tansley 先生是为真正的 UNIX 初学者写作,因此首先提供背景知识和命令信息,这些信息将在用户实际开始编写脚本时需要。他正在介绍基本的 Bourne shell,它是包括 Linux 在内的所有 UNIX 风格所共有的,因此脚本将是可移植的。他不止一次强调,他的脚本不是最高效的设计,但易于理解和重用。书的背面声明所有脚本都可以通过 FTP 站点获得,但没有给出地址,我在书中也找不到—很奇怪。

本书分为五个部分。直到第 4 部分,Tansley 先生才真正开始谈论编程。他希望读者只知道如何登录和使用文本编辑器。虽然这对我很失望,但对于没有像我这样使用 UNIX 这么长时间的人来说,就不会了。

这本书需要更好的编辑;我发现的错误应该被抓住。Tansley 先生担任 UNIX 系统管理员已有一段时间,并且清楚地了解他的主题。但是,带有不正确标点符号的长句子、多余的单词、遗漏的单词和拼写错误(例如,dirrectory)使理解材料比应有的难度更大。有一整章专门介绍find命令,它包含两个严重的编辑问题。首先,在第 25 页解释mtime选项的用法时,出现以下语句

使用“-”指定在 x 天内未被访问的文件。使用“+”指定已被访问的文件。

这使得 - 和 + 的含义颠倒了,正如他在打印示例中所展示的那样。其次,在他对exec选项的解释中,有以下语句

要使用 exec,您必须使用“-print”选项。

然后-print不在任何示例中。显然,单词“not”从该句子中遗漏了。第 52 页有一个类似的错误:它说“如果是 Linux... 记住使用 -n echo 选项”,然后没有在以下示例中使用-n。一位优秀的编辑会发现这些错误。

总的来说,解释是好的,虽然不是非常详细。作者的风格随意而简单,使其易于阅读和理解。他讨论了许多有用的东西,例如 find、cron、grep、通配符、管道、输入/输出、awk、sed、环境变量和许多 shell 命令。所有这些都是认真编写脚本的序幕。

第 4 部分介绍了 shell 脚本编写,第 5 部分介绍了更好的 shell 脚本编写。第 4 部分首先解释如何使用testexpr来确定文件状态和字符串评估—确实是一个很好的起点。然后,他继续讨论流程控制结构(例如,if-then-else、for、while 和 case)、退出状态、菜单创建和打印。示例简单明了,恰如其分地演示了当前主题。一个很好的例子是如何使您的脚本具有交互性;也就是说,从键盘接受输入,而不是在后台运行。在第 4 部分中,他还介绍了传递参数、创建屏幕输入、调试和内置命令。

第 5 部分继续介绍高级脚本编写,其中包含有关“here”文件的更多详细信息以及 run-level 和 cgi 脚本的操作方法。他包括了他自己的一些管理脚本示例,这些示例非常有帮助。这两个部分包含许多有用的信息,可以帮助初学者编写脚本。我没有在这些部分中发现技术错误,就像我在开始时所做的那样。

LINUX & UNIX Shell 编程是对 shell 和脚本编写的很好的介绍。有了优秀的编辑,它将在第二版中变得更好。现在,我犹豫是否向完全的初学者推荐它,即使他们是它的目标受众;但是,对于已经使用 UNIX 一段时间并且有能力整理因错别字引起的任何混乱的人来说,它可以提供有用的参考。

LINUX & UNIX Shell Programming
Marjorie RichardsonLinux Journal的总编辑,可以通过电子邮件 ljeditor@linuxjournal.com.com 联系。
加载 Disqus 评论