makefile 函数学习

Grep:允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行。Grep支持基本正则表达式,也支持其扩展集。
Date:以给定的格式显示当前时间,或是设置系统日期。
Awk:可以格式化报文或从一个大的文本文件中抽取数据包。
      Awk [-F field-separator] ‘commands’ input-file(s) 这里 commands是真正的awk命令
Sed:sed是一个非交互性文本流编辑器。它编辑文件或标准输入导出的文本拷贝。标准输入可能是来自键盘,文件重定向,字符串或变量。
Tr:tr [选项] set1 [ste2]
用来从标准输入中通过替换或删除操作进行字符转换。Tr主要用于删除文件中控制字符或或进行字符转换。-d 删除set1的内容,并不做替换。
$(subst FROM,TO,TEXT)
函数名称:字符串替换函数
函数功能:把字串“TEXT”中的“FROM”替换为“TO”
$(patsubst PATTERN,REPLACEMENT,TEXT)
函数名称:模式替换函数— patsubst。
函数功能:搜索“ TEXT”中以空格分开的单词,将否符合模式“ TATTERN”替换
为“ REPLACEMENT”。参数“ PATTERN”中可以使用模式通配符“ %” 来代表一个单词中的若干字符。
$(strip STRINT)
函数名称:去空格函数— strip。
函数功能:去掉字串(若干单词,使用若干空字符分割)“ STRINT”开头和结尾的
空字符,并将其中多个连续空字符合并为一个空字符。
$(findstring FIND,IN)
函数名称:查找字符串函数— findstring。
函数功能:搜索字串“ IN”,查找“ FIND”字串。
$(filter PATTERN…,TEXT)
函数名称:过滤函数— filter。
函数功能:过滤掉字串“ TEXT”中所有不符合模式“ PATTERN”的单词,保留所
有符合此模式的单词。可以使用多个模式。模式中一般需要包含模式字
符“ %”。存在多个模式时,模式表达式之间使用空格分割。
$(filter-out PATTERN...,TEXT)
函数名称:反过滤函数— filter-out。
函数功能:和“ filter”函数实现的功能相反。过滤掉字串“ TEXT”中所有符合模式
“ PATTERN”的单词,保留所有不符合此模式的单词。可以有多个模式。
存在多个模式时,模式表达式之间使用空格分割。。
$(sort LIST)
函数名称:排序函数— sort。
函数功能:给字串“ LIST”中的单词以首字母为准进行排序(升序),并取掉重复
的单词。
$(word N,TEXT)
 函数名称:取单词函数— word。
函数功能:取字串“ TEXT”中第“ N”个单词(“ N”的值从 1 开始)。
$(wordlist S,E,TEXT)
函数名称:取字串函数— wordlist。
函数功能:从字串“ TEXT”中取出从“ S”开始到“ E”的单词串。“ S”和“ E”
表示单词在字串中位置的数字。
$(words TEXT)
 函数名称:统计单词数目函数— words。
 函数功能:字算字串“ TEXT”中单词的数目。
$(firstword NAMES…)
函数名称:取首单词函数— firstword。
函数功能:取字串“ NAMES…”中的第一个单词。
$(dir NAMES…)
函数名称:取目录函数— dir。
函数功能:从文件名序列“ NAMES…”中取出各个文件名的目录部分。文件名的目
录部分就是包含在文件名中的最后一个斜线(“ /”)(包括斜线)之前的部分。
$(notdir NAMES…)
函数名称:取文件名函数—— notdir。
 函数功能:从文件名序列“ NAMES…”中取出非目录部分。目录部分是指最后一个 斜线(“ /”)(包括斜线)之前的部分。删除所有文件名中的目录部分, 只保留非目录部分。
$(suffix NAMES…)
函数名称:取后缀函数— suffix。
函数功能:从文件名序列“ NAMES…”中取出各个文件名的后缀。后缀是文件名中
最后一个以点“ .”开始的(包含点号)部分,如果文件名中不包含一个点号,则为空。
$(basename NAMES…)
函数名称:取前缀函数— basename。
函数功能:从文件名序列“ NAMES…”中取出各个文件名的前缀部分(点号之后的
部分)。前缀部分指的是文件名中最后一个点号之前的部分。
$(addsuffix SUFFIX,NAMES…)
函数名称:加后缀函数— addsuffix。
函数功能:为“ NAMES…”中的每一个文件名添加后缀“ SUFFIX”。参数“ NAMES…”
为空格分割的文件名序列,将“ SUFFIX”追加到此序列的每一个文件名
的末尾。
$(addprefix PREFIX,NAMES…)
函数名称:加前缀函数— addprefix。
函数功能:为“ NAMES…”中的每一个文件名添加前缀“ PREFIX”。参数“ NAMES…”
是空格分割的文件名序列,将“ SUFFIX”添加到此序列的每一个文件名
之前。
$(join LIST1,LIST2)
函数名称:单词连接函数—— join。
函数功能:将字串“ LIST1”和字串“ LIST2”各单词进行对应连接。就是将“ LIST2”中的第一个单词追加“ LIST1”第一个单词字后合并为一个单词;将“ LIST2”中的第二个单词追加到“ LIST1”的第一个单词之后并合并为一个单词, ……依次列推。
$(wildcard PATTERN)
函数名称:获取匹配模式文件名函数— wildcard
函数功能:列出当前目录下所有符合模式“ PATTERN”格式的文件名。
foreach 函数:
“ foreach”函数的语法:$(foreach VAR,LIST,TEXT)
函数功能:这个函数的工作过程是这样的:如果需要(存在变量或者函数的引用),首先展开变量“ VAR”和“ LIST”的引用;而表达式“ TEXT”中的变量引用不展开。执行时把“ LIST”中使用空格分割的单词依次取出赋值给变量“ VAR”,然后执行“ TEXT”表达式。重复直到“ LIST”的最后一个单词(为空时结束)。“ TEXT”中的变量或者函数引用在执行时才被展开,因此如果在“ TEXT”中存在对“ VAR”的引用,那么“ VAR”的值在每一次展开式将会到的不同的值。
if 函数:
函数语法:$(if CONDITION,THEN-PART[,ELSE-PART])
函数功能: 第一个参数“ CONDITION”,在函数执行时忽略其前导和结尾空字符,如果包含对其他变量或者函数的引用则进行展开。如果“ CONDITION”的 展开结果非空,则条件为真,就将第二个参数“ THEN_PATR”作为函数的计算 表达式;“ CONDITION”的展开结果为空,将第三个参数“ ELSE-PART”作为 函数的表达式,函数的返回结果为有效表达式的计算结果。
call函数:
函数语法:$(call VARIABLE,PARAM,PARAM,...)
函数功能:在执行时,将它的参数“ PARAM”依次赋值给临时变量“ $(1)”、“ $(2)”(这些临时变量定义在“ VARIABLE”的值中,参考下边的例子)…… call 函数对参数的数目没有限制,也可以没有参数值,没有参数值的“ call”没有任何实际存在的意义。执行时变量“ VARIABLE”被展开为在函数上下文有效的临时变量,变量定义中的“ $(1)”作为第一个参数,并将函数参数值中的第一个赋值给它;变量中的“ $(2)”一样被赋值为函数的第二个参数值;依此类推(变量$(0)代表变量“ VARIABLE”本身)。之后对变量“ VARIABLE” 表达式的计算值。
value函数:
函数语法:$(value VARIABLE)
函数功能:不对变量“ VARIBLE”进行任何展开操作,直接返回变量“ VARIBALE”的值。这里“ VARIABLE”是一个变量名,一般不包含“ $”(除非计算的变量名)。
eval函数:
此函数的功能主要是:根据其参数的关系、 结构,对它们进行替换展开。
origin函数:
函数语法:$(origin VARIABLE)
 函数功能: 函数“ origin”查询参数“ VARIABLE”(一个变量名)的出处。
$(error TEXT…)
函数功能: 产生致命错误,并提示“ TEXT…”信息给用户,并退出 make 的执行。
$(warning TEXT…)
函数功能: 函数“ warning”类似于函数“ error”,区别在于它不会导致致命错 误( make 不退出),而只是提示“ TEXT…”, make 的执行过程继续。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值