在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言到最后一节来写“开篇”,确实有点古怪。不过,在第一篇(数值操作)的开头实际上也算是一个小的开篇,那里提到整个系列的前提是需要有一定的 Shell 编程基础,因此,为了能够让没有 Shell 编程基础的读者也可以阅读这个系列,我到最后来重写这个开篇。开篇主要介绍什么是 Shell,Shell 运行环境,Shell 基本语法和调试技巧。 什么是 Shell首先让我们从下图看看 Shell 在整个操作系统中所处的位置吧,该图的外圆描述了整个操作系统(比如
该解释程序不仅能够解释简单的命令,而且可以解释一个具有特定语法结构的文件,这种文件被称作脚本(Script)。它具体是如何解释这些命令和脚本文件的,这里不深入分析,请看我在 2008 年写的另外一篇文章:《Linux命令行上程序执行的一刹那》。 既然该程序可以解释具有一定语法结构的文件,那么我们就可以遵循某一语法来编写它,它有什么样的语法,如何运行,如何调试呢?下面我们以 搭建运行环境为了方便后面的练习,我们先搭建一个基本运行环境:在一个 Linux 操作系统中,有一个运行有
或者是简单地键入Bash:
如果没有安装 Linux 操作系统,也可以考虑使用一些公共社区提供的 Linux 虚拟实验服务,一般都有提供远程 有了基本的运行环境,那么如何来运行用户键入的命令或者是用户编写好的脚本文件呢 假设我们编写好了一个 Shell 脚本,叫 第一种方法是确保我们执行的命令具有可执行权限,然后直接键入该命令执行它:
第二种方法是直接把脚本作为
或
或
基本语法介绍先来一个 下面来介绍一个 Shell 程序的基本结构,以
把上述代码保存为 方法一:
方法二:
我们发现两者运行结果有区别,为什么呢?这里我们需要关注一下 原因在该文件的第一行,当我们直接运行该脚本文件时,该行告诉操作系统使用用 其他语法细节请直接看《Shell编程学习笔记》即本书后面的附录一。 Shell 程序设计过程Shell 语言作为解释型语言,它的程序设计过程跟编译型语言有些区别,其基本过程如下:
可见它没有编译型语言的"麻烦的"编译和链接过程,不过正是因为这样,它出错时调试起来不是很方便,因为语法错误和逻辑错误都在运行时出现。下面我们简单介绍一下调试方法。 调试方法介绍可以直接参考资料:Shell 脚本调试技术 或者 BASH 的调试手段。 小结Shell 语言作为一门解释型语言,可以使用大量的现有工具,包括数值计算、符号处理、文件操作、网络操作等,因此,编写过程可能更加高效,但是因为它是解释型的,需要在执行过程中从磁盘上不断调用外部的程序并进行进程之间的切换,在运行效率方面可能有劣势,所以我们应该根据应用场合选择使用 Shell 或是用其他的语言来编程。 参考资料 |
请发表评论