傻大方


首页 > 潮·科技 > >

Bash|怎样用 Bash 编程:语法和工具



按关键词阅读: 编程语言 编程 Linux Bash 命令行

Bash|怎样用 Bash 编程:语法和工具文章插图
让我们通过本系列文章来学习基本的 Bash 编程语法和工具 , 以及如何使用变量和控制运算符 , 这是三篇中的第一篇 。 -- David Both(作者)
【Bash|怎样用 Bash 编程:语法和工具】Shell 是操作系统的命令解释器 , 其中 Bash 是我最喜欢的 。 每当用户或者系统管理员将命令输入系统的时候 , Linux 的 shell 解释器就会把这些命令转换成操作系统可以理解的形式 。 而执行结果返回 shell 程序后 , 它会将结果输出到 STDOUT(标准输出) , 默认情况下 , 这些结果会 显示在你的终端。 所有我熟悉的 shell 同时也是一门编程语言 。
Bash 是个功能强大的 shell , 包含众多便捷特性 , 比如:tab 补全、命令回溯和再编辑、别名等 。 它的命令行默认编辑模式是 Emacs , 但是我最喜欢的 Bash 特性之一是我可以将其更改为 Vi 模式 , 以使用那些储存在我肌肉记忆中的的编辑命令 。
然而 , 如果你把 Bash 当作单纯的 shell 来用 , 则无法体验它的真实能力 。 我在设计一套包含三卷的 Linux 自学课程 时(这个系列的文章正是基于此课程) , 了解到许多 Bash 的知识 , 这些是我在过去 20 年的 Linux 工作经验中所没有掌握的 , 其中的一些知识就是关于 Bash 的编程用法 。 不得不说 , Bash 是一门强大的编程语言 , 是一个能够同时用于命令行和 shell 脚本的完美设计 。
本系列文章将要探讨如何使用 Bash 作为命令行界面(CLI)编程语言 。 第一篇文章简单介绍 Bash 命令行编程、变量以及控制运算符 。 其他文章会讨论诸如:Bash 文件的类型;字符串、数字和一些逻辑运算符 , 它们能够提供代码执行流程中的逻辑控制;不同类型的 shell 扩展;通过 for、while 和 until 来控制循环操作 。
ShellBash 是 Bourne Again Shell 的缩写 , 因为 Bash shell 是 基于 更早的 Bourne shell , 后者是 Steven Bourne 在 1977 年开发的 。 另外还有很多 其他的 shell 可以使用 , 但下面四个是我经常见到的:

  • csh:C shell 适合那些习惯了 C 语言语法的开发者 。
  • ksh:Korn shell , 由 David Korn 开发 , 在 Unix 用户中更流行 。
  • tcsh:一个 csh 的变种 , 增加了一些易用性 。
  • zsh:Z shell , 集成了许多其他流行 shell 的特性 。
所有 shell 都有内置命令 , 用以补充或替代核心工具集 。 打开 shell 的 man 说明页 , 找到“BUILT-INS”那一段 , 可以查看都有哪些内置命令 。
每种 shell 都有它自己的特性和语法风格 。 我用过 csh、ksh 和 zsh , 但我还是更喜欢 Bash 。 你可以多试几个 , 寻找更适合你的 shell , 尽管这可能需要花些功夫 。 但幸运的是 , 切换不同 shell 很简单 。
所有这些 shell 既是编程语言又是命令解释器 。 下面我们来快速浏览一下 Bash 中集成的编程结构和工具 。
做为编程语言的 Bash大多数场景下 , 系统管理员都会使用 Bash 来发送简单明了的命令 。 但 Bash 不仅可以输入单条命令 , 很多系统管理员可以编写简单的命令行程序来执行一系列任务 , 这些程序可以作为通用工具 , 能节省时间和精力 。
编写 CLI 程序的目的是要提高效率(做一个“懒惰的”系统管理员) 。 在 CLI 程序中 , 你可以用特定顺序列出若干命令 , 逐条执行 。 这样你就不用盯着显示屏 , 等待一条命令执行完 , 再输入另一条 , 省下来的时间就可以去做其他事情了 。
什么是“程序”?自由在线计算机词典( FOLDOC )对于程序的定义是:“由计算机执行的指令 , 而不是运行它们的物理硬件 。 ”普林斯顿大学的 WordNet 将程序定义为:“……计算机可以理解并执行的一系列指令……” 维基百科 上也有一条不错的关于计算机程序的条目 。
总结下 , 程序由一条或多条指令组成 , 目的是完成一个具体的相关任务 。 对于系统管理员而言 , 一段程序通常由一系列的 shell 命令构成 。 Linux 下所有的 shell (至少我所熟知的)都有基本的编程功能 , Bash 作为大多数 linux 发行版的默认 shell , 也不例外 。
本系列用 Bash 举例(因为它无处不在) , 假如你使用一个不同的 shell 也没关系 , 尽管结构和语法有所不同 , 但编程思想是相通的 。 有些 shell 支持某种特性而其他 shell 则不支持 , 但它们都提供编程功能 。 Shell 程序可以被存在一个文件中被反复使用 , 或者在需要的时候才创建它们 。
简单 CLI 程序最简单的命令行程序只有一或两条语句 , 它们可能相关 , 也可能无关 , 在按回车键之前被输入到命令行 。 程序中的第二条语句(如果有的话)可能取决于第一条语句的操作 , 但也不是必须的 。


稿源:(未知)

【傻大方】网址:http://www.shadafang.com/c/111J2TS2020.html

标题:Bash|怎样用 Bash 编程:语法和工具


上一篇:明年手机这技术普及,你们的手机会“落后”吗?

下一篇:笔记本|笔记本看着不爽?频繁卡顿?那就考虑下换屏清灰吧!