2024年4月17日发(作者:)
学习如何使用 bash 脚本语言编程,将使 Linux 的日常交互更有趣和有生产力,同时
还可以利用那些已熟悉和喜爱的标准 UNIX 概念(如管道和重定向)。
在此三部分系列中,Daniel Robbins 将以示例指导您如何用 bash 编程。他将讲述非
常基本的知识(这使此系列十分适合初学者),并在后续系列中逐步引入更高级特性。
您可能要问:为什么要学习 Bash 编程?好,以下是几条令人信服的理由:
已经在运行它
如果查看一下,可能会发现:您现在正在运行 bash。因为 bash 是标准 Linux shell,
并用于各种目的,所以,即使更改了缺省 shell,bash 可能
仍
在系统中某处运行。因为
bash 已在运行,以后运行的任何 bash 脚本都天生是有效利用内存的,因为它们与任何已
运行的 bash 进程共享内存。如果正在运行的工具可以胜任工作,并且做得很好,为什么
还要装入一个 500K 的解释器?
已经在使用它
不仅在运行 bash,实际上,您每天还在与 bash 打交道。它总在那里,因此学习如何最大
限度使用它是有意义的。这样做将使您的 bash 经验更有趣和有生产力。但是为什么要学
习 bash
编程
?很简单,因为您已在考虑如何运行命令、CPing 文件以及管道化和重定
向输出。为什么不学习一种语言,以便使用和利用那些已熟悉和喜爱的强大省时的概念?命
令 shell 开启了 UNIX 系统的潜能,而 bash 正是
这个
Linux shell。它是您和机器之间
的高级纽带。增长 bash 知识吧,这将自动提高您在 Linux 和 UNIX 中的生产力 -- 就
那么简单。
Bash 困惑
以错误方式学习 bash 令人十分困惑。许多新手输入 "man bash" 来查看 bash 帮助页,
但只得到非常简单和技术方面的 shell 功能性描述。还有人输入 "info bash"(来查看
GNU 信息文档),只能得到重新显示的帮助页,或者(如果幸运)略为友好的信息文档。
尽管这可能使初学者有些失望,但标准 bash 文档无法满足所有人的要求,它只适合那些
已大体熟悉 shell 编程的人。帮助页中确实有很多极好的技术信息,但对初学者的帮助却
有限。
这就是本系列的目的所在。在本系列中,我将讲述如何实际使用 bash 编程概念,以便编
写自己的脚本。与技术描述不同,我将以简单的语言为您解释,使您不仅知道事情做什么,
还知道应在何时使用。在此三部分系列末尾,您将可以自己编写复杂的 bash 脚本,并可
以自如地使用 bash 以及通过阅读(和理解)标准 bash 文档来补充知识。让我们开始吧。
环境变量
在 bash 和几乎所有其它 shell 中,用户可以定义环境变量,这些环境变量在以 ASCII 字
符串存储。环境变量的最便利之处在于:它们是 UNIX 进程模型的标准部分。这意味着:
环境变量不仅由 shell 脚本独用,而且还可以由编译过的标准程序使用。当在 bash 中“导
出”环境变量时,以后运行的任何程序,不管是不是 shell 脚本,都可以读取设置。一个
很好的例子是 vipw 命令,它通常允许 root 用户编辑系统口令文件。通过将 EDITOR 环
境变量设置成喜爱的文本编辑器名称,可以配置 vipw,使其使用该编辑器,而不使用 vi,
如果习惯于 xemacs 而确实不喜欢 vi,那么这是很便利的。
在 bash 中定义环境变量的标准方法是:
$ myvar='This is my environment variable!'


发布评论