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 \<General\> $(TOP_DIR)/ProgramID/oem | awk -F ' ' '{print $$1}')
首先是awk-F:’commands’ input-file
其中commands是真正的awk命令
Grep使用格式:grep [选项]…PATTERN [FILE]…
在每个file或是标准输入中查找pattern,默认的pattern是一个基本正表表达式
强制匹配模式-w指的是需要完全符合,否则不输出,然后grep选项可以多个输出会
有不同的效果。
\<General\>这个代表的是查找<General>,\是转义字符