首页 » 2017 » 8月 ( 第 3 页 )

Linux-位置参数

 

现在我们的程序还缺少一种本领,就是接收和处理命令行选项和参数的能力。在这一章中,我们将探究一些能 让程序访问命令行内容的 shell 性能。 访问命令行 shell 提供了一个称为位置参数的变量集合,这个集合包含了命令行中所有独立的单词。这些变量按照从0到9给 … 阅读全文

Linux-流程控制:case 分支

 

在这一章中,我们将继续看一下程序的流程控制。在第28章中,我们构建了一些简单的菜单并创建了用来 应对各种用户选择的程序逻辑。为此,我们使用了一系列的 if 命令来识别哪一个可能的选项已经被选中。 这种类型的构造经常出现在程序中,出现频率如此之多,以至于许多编程 … 阅读全文

Linux-疑难排解

 

随着我们的脚本变得越来越复杂,当脚本运行错误,执行结果出人意料的时候, 我们就应该查看一下原因了。 在这一章中,我们将会看一些脚本中出现地常见错误类型,同时还会介绍几个可以跟踪和消除问题的有用技巧。 语法错误 一个普通的错误类型是语法。语法错误涉及到一些 sh … 阅读全文

Linux-流程控制:while/until 循环

 

在前面的章节中,我们开发了菜单驱动程序,来产生各种各样的系统信息。虽然程序能够运行, 但它仍然存在重大的可用性问题。它只能执行单一的选择,然后终止。更糟糕地是,如果做了一个 无效的选择,程序会以错误终止,而没有给用户提供再试一次的机会。如果我们能构建程序, 以 … 阅读全文

Linux-读取键盘输入

 

到目前为止我们编写的脚本都缺乏一项在大多数计算机程序中都很常见的功能-交互性。也就是, 程序与用户进行交互的能力。虽然许多程序不必是可交互的,但一些程序却得到益处,能够直接 接受用户的输入。以这个前面章节中的脚本为例: #!/bin/bash # test-i … 阅读全文

Linux-流程控制:if 分支结构

 

在上一章中,我们遇到一个问题。怎样使我们的报告生成器脚本能适应运行此脚本的用户的权限? 这个问题的解决方案要求我们能找到一种方法,在脚本中基于测试条件结果,来“改变方向”。 用编程术语表达,就是我们需要程序可以分支。让我们考虑一个简单的用伪码表示的逻辑实例, … 阅读全文

Linux-自顶向下设计

 

随着程序变得更加庞大和复杂,设计,编码和维护它们也变得更加困难。对于任意一个大项目而言, 把繁重,复杂的任务分割为细小且简单的任务,往往是一个好主意。想象一下,我们试图描述 一个平凡无奇的工作,一位火星人要去市场买食物。我们可能通过下面一系列步骤来形容整个过程 … 阅读全文

Linux-启动一个项目

 

从这一章开始,我们将建设一个项目。这个项目的目的是为了了解怎样使用各种各样的 shell 功能来 创建程序,更重要的是,创建好程序。 我们将要编写的程序是一个报告生成器。它会显示系统的各种统计数据和它的状态,并将产生 HTML 格式的报告, 所以我们能通过网络 … 阅读全文

Linux-编写第一个 Shell 脚本

 

在前面的章节中,我们已经装备了一个命令行工具的武器库。虽然这些工具能够解决许多种计算问题, 但是我们仍然局限于在命令行中手动地一个一个使用它们。如果我们能够让 shell 来完成更多的工作, 岂不是更好? 我们可以的。通过把我们的工具一起放置到我们自己设计的程 … 阅读全文

Linux-编译程序

 

在这一章中,我们将看一下如何通过编译源代码来创建程序。源代码的可用性是至关重要的自由,从而使得 Linux 成为可能。 整个 Linux 开发生态圈就是依赖于开发者之间的自由交流。对于许多桌面用户来说,编译是一种失传的艺术。以前很常见, 但现在,由系统发行版提 … 阅读全文