知识点回顾:
1. 分支结构的作用就是将 C 语言的代码引入歧途
那么光有关系表达式和逻辑表达式还不足以实现分支结构,还需要学习一个新的语句——if 语句。
if 语句的实现有好几种形式,我们逐一给大家介绍一下。
第一种:
…… // 其它语句
if (表达式)
{
…… // 逻辑值为真所执行的语句、程序块
}
…… // 其它语句
第一种是最简单的,if 后边小括号内填写返回逻辑值的表达式,当然你可以直接填入一个逻辑值,当你填入这个值为非 0 的时候,编译系统就会认为这个逻辑值是真;只有当你填入 0 的时候,才被认为是假的。
第二种:
…… // 其它语句
if (表达式)
{
…… // 逻辑值为真所执行的语句、程序块
}
else
{
…… // 逻辑值为真所执行的语句、程序块
}
…… // 其它语句
第三种:
…… // 其它语句
if (表达式1)
{
…… // 逻辑值为真所执行的语句、程序块
}
else if (表达式2)
{
…… // 逻辑值为真所执行的语句、程序块
}
else if (表达式3)
{
…… // 逻辑值为真所执行的语句、程序块
}
.
.
.
else if (表达式n)
{
…… // 逻辑值为真所执行的语句、程序块
}
else
{
…… // 逻辑值为真所执行的语句、程序块
}
…… // 其它语句
2. 彩蛋
在第一期的彩蛋中,我们不是提到了 Dennis Ritchie 和 Ken Thompson 这对好基友发明了 C 语言,并用 C 语言重写了 UNIX 系统,使得 UNIX 系统一飞冲天,从而让 IT 界再度腥风血雨!
这次咱不谈他俩了,不过今天的主人公也非等闲之辈,他的影响远远超出了贝尔实验室的范围,他就是 —— Steve Bourne。
Steve Bourne 何许人也?他又做了什么事情轰动了江湖?
Steve Bourne 也是贝尔实验室的成员,Dennis Ritchie 和 Ken Thompson 的同事。本来吧,他也就是一个默默无闻的码农。但由于 Ritchie 和 Thompson 玩游戏玩出了个 UNIX,一下子整个贝尔实验室都炸开了锅!
你想想啊,要是你们班上某童鞋突然中了 Power ball,还是几亿美金的那种,咱是不是得意思意思
所以嘛,那时整个贝尔实验室的哥们都特别热心,这个帮忙写写驱动,那个帮忙调试 BUG,反正是要帮忙干点力所能及的,明儿说不定就载入史册了~~
刚开始的时候,Thompson 写了个简单的程序作为 UNIX 操作系统的接口界面,有了它,人类和操作系统就可以进行交流了。
这玩意儿呢,叫 shell(我们在 Linux 打开的那个 Terminal 就是一个 shell)。 Thompson 还给它起了个名字,叫“Thompson shell”(这哥们可真不低调 )
Thompson shell 的功能很简单,用户通过它输入一些指定的命令,它负责解释为需要计算机做的操作,并去执行。另外它还能够支持一些简单的脚本,就是把一堆命令写进一个文件里依次执行。但并没有更高级的例如流程控制,分支,变量,函数之类的东西。
这会儿主人公 Bourne 出现了(逮到机会赶紧上),也设计了一个 shell,叫“Bourne shell”(似乎都生怕别人不知道程序是谁写的)。这个 shell 就强大些了,有了基本的流控制源,可以写简单的函数。
这俩好面子的大牛都力挺自己设计的 shell,渐渐的两种 shell 都有了各自的追随者,渐渐的形成了两大阵营(就像如今的 Vim 和 Emacs)。Thompson 的粉丝觉得简洁才是真理,Bourne 的死忠则认为实用才是王道!就这样,撕逼大战一触即发……
到了 1970 年代末,他们终于打起来咯 ~
由于两个 shell 互相不兼容,而一个和平统一的 UNIX 弄两套标准的 shell 也不大合适,所以必须确定一个 UNIX 的标准 shell。于是,一场旷日持久的战斗打响了,两派相互争论各自 shell 的优缺点。
最终,以 Bourne shell 的胜出结束,Bourne shell 作为默认的 shell 出现在 UNIX 第 7 版系统中,其二进制程序被命名为 sh 放在了 /bin。直到现在,linux 发行版中依然都存在着 /bin/sh 这个文件,不过现在这个 sh 一般都只是个链接了,链接到默认的 shell。
有些鱼油可能会问:那现在打开的 Terminal 到底是什么 shell?
事实上现在大多数 Linux 发行版的默认 Shell 叫 Bash,它的名字是 Bourne-Again SHell 的缩写,这是关于 Bourne shell(sh)的一个双关语:“Bourne again / born again”,由 Brian J. Fox 所编写(看,还是低调的哥们赢得了最后的胜利)。




