POSTS
PROGRAMMING

Understanding Bash: Elements of Programming

原文链接 Vladimir Likic 2018年9月28日 是否曾考虑过为什么Bash编程这样难?Bash尽管拥有常见编程语言的结构,但是写起来它的逻辑会显得难懂一些。 Bourne-Again SHell(Bash)是由GNU项目下的Free Software Foundation开发,因此它在开源社区格外受欢迎。如今Bash是大多数Linux发行版的默认shell。Bash尽管是诸多UNIX shell之一,但得益于Linux的流行他最为大众周知。 开发UNIX shell的主要目的是使人可以通过命令行高效地同系统进行交互。shell最常见的行为是调用程序使kernel启动一个新的进程。shell可以将一个程序的输出作为另外一个程序的输入,也可以操作文件系统。例如,用户可以将某个文件或一个程序的输出写入一个文件。 尽管Bash首先是一个命令解释器,但他也是一个编程语言。他支持变量、函数、控制流,如条件跳转和循环。其编程风格会有一些怪异之处,这是因为他在同时扮演两个角色:命令解释器和编程语言,而这两者在一起并不十分融洽。 包括Bash在内的所有UNIX shell首先是个命令解释器。这个特性可以追溯至第一版UNIX系统的第一个shell。陆续,UNIX shell开始添加一些用作编程的特性,为了实现用作编程的目的也就出现了一些看似奇怪的特点。对于那些具有其他编程语言经验的人而言,Bash的编程结构会让人感觉困惑,