1. 编译型语言好处是高效,缺点是:他们多半运行在底层,所处理的是字节,整数,浮点数或是其他机器层级的对象。
脚本编程语言通常是解释型,这类程序的执行,是由解释器读入程序代码,将其转换为内部的形式。解释器本身是一般的编译型程序。确定是:效率不如编译型语言。shell脚本是简单性,可移植性,开发容易的特点。
2. shell识别三种基本命令:内建命令,shell函数以及外部命令
- 内建命令就是由shell本身执行的命令。有些命令是由于其必要性才内建的,如cd,read。有些命令式为了效率,如test,echo,printf
- shell函数式功能健全的一系列程序代码,以shell语言写成,可以像命令那样引用。
- 外部命令就是由shell的副本(新的进程)所执行的命令,基本过程如下:
- 建立一个新的进程,此进程为shell的一个副本。
- 在新的进程里,在PATH变量内所列出的目录中,寻找特定命令。
- 在新的进程里,以所找到的新程序取代执行中的shell程序并执行。
- 程序完成后,最初的shell会接着从终端读取下一条命令,或执行脚本里的下一条命令。
3. 所有的脚本都应该以#!为第一行。shell会在$PATH变量所列举的各个目录中寻找命令,你可以将自己的目录加入到.profile文件中$PATH里,这样就不用每次修改$PATH。