可执行程序一般有两种实现方式:一种是二进制方式;另一种是脚本(script)方式。二进制方式是先将编写好的程序(如C/C++程序)进行编译,变成计算机可识别的指令代码(如.exe文件),然后再执行。这种编译好的程序只能执行、使用,却看不到它的程序内容。
脚本,简单地说就是由一条一条的命令组成的文本文件,可以用记事本查看或者编辑。脚本程序在执行时,是由系统的一个解释器将其一条条地翻译成计算机可识别的指令,并按程序的逻辑顺序执行(一般来说,脚本程序是确定的一系列控制计算机进行运算操作的动作的组合,在其中可以实现一定的逻辑分支等)。因为脚本在执行时多了一道翻译的过程,所以它比二进制程序执行效率要稍低一些。
Linux shell脚本,类似于DOS批处理(batch)脚本,就是将一些可执行的Linux命令放在一个文件里面,然后按照顺序(确切地说,是逻辑顺序,因为会有判断、分支、循环等),命令一条条地执行。例如,接着前面的例子,假设需要同时知道现在的日期、时间和本月的日历,那么需要先后输入相应的3条命令,这并不麻烦。但是假设需要知道很多信息,需要输入30条命令或者更多,并且每天都要执行同样的命令,是不是就有些麻烦了?如果把这些命令写在一个文本文件里面就不麻烦,该文本文件就是一个脚本。每天只需执行该脚本,写在脚本里面的命令会依次运行。还是接着前面的例子,这3条命令组成的脚本如下:
该脚本一共4行,第一行指明了脚本解释器的位置,接下来的3行依次是需要执行的命令。运行该脚本就会得到想要的结果。运行一个脚本,输入脚本文件名即可,仅需要用键盘输入一条命令;如果没有脚本,将需要输入3条、30条或者更多的命令。(www.xing528.com)
但shell脚本不能被简单地理解为:将某些Linux命令“堆放”在一起。实际上,每种shell脚本都是一门程序设计语言。一个包含多条命令的脚本,打开它,从表面上看,命令被“堆放”在一起,但是命令的先后顺序不是任意的,一般是有依赖关系的,有一定逻辑的。
与C/C++,Java,Fortran,Pascal等程序设计语言相比,shell脚本语言掌握起来要相对容易。Linuxshell没有复杂和丰富的数据类型,虽然Linux shell包含分支、判断、循环等功能,但shell脚本在本质上的确就是将某些Linux命令“堆放”在一起(shell脚本运行时,当中的命令依次接受脚本解释器的解释,例如,一个包含多条命令的脚本,即便最后一条命令有语法错误,前面的命令仍然可以照常运行;即便中间某条命令没有正常运行,假设后面的命令不依赖于它,后面的命令仍然可以照常运行)。所以很难看到逻辑非常复杂的shell脚本,看懂别人的shell脚本通常不是一件难事。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。