Bash语言和C语言都是Linux下的常用语言。它们都能通过特定的语法来编写程序,而程序运行后都能实现某些功能。尽管在语法细节上存在差异,但两种语言都有以下语法:
变量:在内存中储存数据
循环结构:重复执行代码块
选择结构:根据条件执行代码块
函数:复用代码块
编程语言的作者在设计语言时,往往会借鉴已有编程语言的优点。这是编程语言之间相似性的一大原因。程序员往往要掌握不止一套编程语言。相似的语法特征,会让程序员在学习新语言时感到亲切,从而促进语言的推广。
Bash和C的相似性,也来自于它们共同遵守的编程范式——面向过程编程。支持面向过程编程的语言,一般都会提供类似于函数的代码封装方式。函数把多行指令包装成一个功能。只要知道了函数名,程序可以通过调用函数来使用函数功能,最终实现代码复用。除了面向过程编程,还有面向对象和函数式的编程范式。每种编程范式都提供了特定的代码封装方式,并达到代码复用的目的。值得注意的是,近年来出现的新语言往往会支持不止一种编程范式。
除了相似性,我们还应该注意到Bash和C程序的区别。Bash的变量只能是文本类型,C的变量却可以有整数、浮点数、字符等类型。Bash的很多功能,如加减乘除运算,都是调用其他程序实现的。而C直接就可以进行加减乘除运算。可以说,C语言是一门真正的编程语言。C程序最终会编译成二进制的可执行文件。CPU可以直接理解这些文件中的指令。
另一方面,Bash是一个Shell。它本质上是一个命令解释器程序,而不是编程语言。用户可以通过命令行的方式,来调用该程序的某些功能。所谓的Bash编程,只是命令解释器程序提供的一种互动方法。Bash脚本只能和Bash进程互动。它不能像C语言一样,直接调用CPU的功能。因此,Bash能实现的功能会受限,运行速度上也比不上可执行文件。
但另一方面,Bash脚本也有它的好处。C语言能接触到很底层的东西,但使用起来也很复杂。有时候,即使你已经知道如何用C实现一个功能,写代码依然是一个很繁琐的过程。Bash正相反。由于Bash可以便捷地调用已有的程序,因此很多工作可以用数行的脚本解决。此外,Bash脚本不需要编译,就可以由Bash进程理解并执行。因此,开发Bash脚本比写C程序要快很多。Linux的系统运维工作,如定期备份、文件系统管理等,就经常使用到Bash脚本。
总之,Bash编程知识是晋级为资深Linux用户的必要条件。
----------都看到这里还不学习下---------
Shell编程基础01 Hello World
Shell编程基础02 变量
Shell基础教程03 运算
Shell基础教程04 数组
Shell基础教程05 控制语句
Shell基础教程06 函数
Shell编程进阶01 参数扩展
Shell编程进阶02 多进程写法
Shell常用预定义变量