常听说:shell编程,Bash编程,和Bash shell编程,究竟什么是shell,又何为Bash,两者有什么联系…
简单的说,shell是命令解释器,用于解析和执行命令。它对用户屏蔽了操作系统底层(kernel)的复杂性,是两者间的桥梁。
Bourne shell是早期Unix系统使用的shell,位于/bin/sh,简称sh,其为shell的具体化。可理解为:shell是一个对象,Bourne shell仅是该对象的一个实例。
sh既是命令解释器,能执行命令;也是编程语言,可以将各种命令组合,加上逻辑,形成新的命令。 且sh成为了后续各种shell事实上的标准,Unix-like系统上的shell都会兼容Bourne shell。
Bash(Bourne-Again SHell),也是一种shell,最大程度的和sh兼容,并从Korn shell ksh和C shell csh引入了一些实用的特性。在交互性,和可编程方面比sh更加强大。
现在前面的说法很明了:
shell编程,是指使用一种shell(可能是Bash)进行编程;就像说使用编程语言编程,最终还要选取一种语言嘛。
Bash编程,是指使用bash(这个shell)进行编程;就像说使用Python(编程语言)编程。
Bash shell编程,是“Bash编程”啰嗦的说法。