Shell Script
我们已经编写过简单的Shell,其就是与系统沟通的工具,而Shell script则是利用Shell的语法和命名,并搭配正则表达式、管道等功能实现的纯文本文件,由Shell去解释执行
1 |
|
1 | #test_2.sh |
上面基本上囊括了Shell script的基本用法,除了一些变量比较的命令没有列出来,要熟练掌握,主要还是要不断书写、练习
Makefile
1 | target ... : prerequisites ... |
target
也就是一个目标文件,可以是Object File,也可以是执行文件。还可以是一个标签(Label)。prerequisites
就是,要生成那个target所需要的文件或是目标。command
也就是make需要执行的命令。(任意的Shell命令)
这是一个文件的依赖关系,也就是说,target
这一个或多个的目标文件依赖于prerequisites
中的文件,其生成规则定义在command
中。说白一点就是说,prerequisites
中如果有一个以上的文件比target
文件要新的话,command
所定义的命令就会被执行。
1 | # Students' Makefile for the Malloc Lab |
在默认的方式下,也就是我们只输入make命令。那么,
- make会在当前目录下找名字叫“Makefile”或“makefile”的文件
- 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到“mdriver”这个文件,并把这个文件作为最终的目标文件
- 如果“mdriver”文件不存在,或是“mdriver”所依赖的后面的.o 文件的文件修改时间要比edit这个文件新,那么他就会执行后面所定义的命令来生成“mdriver”这个文件
- 如果“mdriver”所依赖的.o文件也存在,那么make会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件