makefile文件中的一些问题

Makefile 路径查找是出现的错误:

SOFIA_INTERMEDIATEDIR=$(WORK_DIR)/$(shell basename $(shell pwd))_$(GUI_VEBDOR)_$(OEM_VENDOR_DIR)_tmp

在这条命令中很容易搞错,因为在makefile中有一个dir命令和一个basename命令,然后在shell中也有basename函数和dirname函数,两个是不相同的,在makefile中,$(basename  NAMES)函数功能是取出各个文件的前缀部分,dir命令$(dir NAMES)指的是取出各个文件名的目录部分,文件名的目录部分就是包含在文件名中的最后一个斜线之前的部分,而在shell中,basename命令能从路径中分离出文件名,及取出文件名部分,dirname的作用则和basename正好相反,它返回路径部分。所以看函数一定要谨慎。

 

环境和环境变量:

一般来说,环境指的是程序编译环境,他是要到指定的工作目录下工作的,然后环境变量指的一般都是查找目录。一个系统在运行一个程序而没有告诉在哪个目录下工作时,系统首先会在当前目录下寻找,然后会在指定目录下查找。


Shell脚本:

Shell脚本在处理自动循环或大的任务方面可以节省大量的时间,并且功能强大。

Shell脚本不是复杂的程序,它是按行解释的,脚本第一行总是#!/bin/sh开始,这段脚本通知shell使用系统上的Bourne shell解释器。

$pg cleanup

#!/bin/sh

#name:cleanup 

#this is a general cleanup script

Echo “starting cleanup … wait”

Rm/user/local/apps/log/*.log

Tail -40 /var/adm/messages

Mv/tmp/messages/var/adm/messages

Echo “finished cleanup”

需要用chmod命令增加脚本执行权限。

$chmod u+x cleanup

这个只是shell脚本的基本原理,今天也没有别的资料可以好好学一下,希望在不久的将来可以和shell脚本擦出火花


$(shell grep -w \ $(TOP_DIR)/ProgramID/oem | awk -F ' ' '{print $$1}')

首先是awk-F:’commands’ input-file 

其中commands是真正的awk命令

Grep使用格式:grep [选项]…PATTERN [FILE]…

              在每个file或是标准输入中查找pattern,默认的pattern是一个基本正表表达式

强制匹配模式-w指的是需要完全符合,否则不输出,然后grep选项可以多个输出会

有不同的效果。

\这个代表的是查找,\是转义字符


你可能感兴趣的:(linux)