dir函数
函数名称 | 取目录函数—dir |
函数语法 | $(dir NAMES…) |
函数功能 | 从文件名序列“NAMES…”中取出各个文件名的目录部分。文件名的目 录部分就是包含在文件名中的最后一个斜线(“/”)(包括斜线)之前的部分 |
返回值 | 空格分割的文件名序列“NAMES…”中每一个文件的目录部分 |
函数说明 | 如果文件名中没有斜线,认为此文件为当前目录(“./”)下的文件 |
示例 | $(dir src/foo.c hacks) 返回值为“src/ ./” |
notdir函数
函数名称 | 取文件名函数——notdir |
函数语法 | $(notdir NAMES…) |
函数功能 | 从文件名序列“NAMES…”中取出非目录部分。目录部分是指最后一个 斜线(“/”)(包括斜线)之前的部分。删除所有文件名中的目录部分, 只保留非目录部分。 |
返回值 | 文件名序列“NAMES…”中每一个文件的非目录部分 |
函数说明 | 如果“NAMES…”中存在不包含斜线的文件名,则不改变这个文件名。 以反斜线结尾的文件名,是用空串代替,因此当“NAMES…”中存在多 个这样的文件名时,返回结果中分割各个文件名的空格数目将不确定! 这是 此函数的一个缺陷 |
示例 | $(notdir src/foo.c hacks) 返回值为:“foo.c hacks” |
suffix函数
函数名称 | 取后缀函数—suffix。 |
函数语法 | $(suffix NAMES…) |
函数功能 | 从文件名序列“NAMES…”中取出各个文件名的后缀。后缀是文件名中最后一个以点“.”开始的(包含点号)部分,如果文件名中不包含一个点号,则为空。 |
返回值 | 以空格分割的文件名序列“NAMES…”中每一个文件的后缀序列 |
函数说明 | “NAMES…”是多个文件名时,返回值是多个以空格分割的单词序列。如果文件名没有后缀部分,则返回空 |
示例 | $(suffix src/foo.c src-1.0/bar.c hacks) 返回值为“.c .c”。 |
basename函数
函数名称 | 取前缀函数—basename。 |
函数语法 | $(basename NAMES…) |
函数功能 | 从文件名序列“NAMES…”中取出各个文件名的前缀部分(点号之后的 部分)。前缀部分指的是文件名中最后一个点号之前的部分 |
返回值 | 空格分割的文件名序列“NAMES…”中各个文件的前缀序列。如果文件没有前缀,则返回空字串。 |
函数说明 | 如果“NAMES…”中包含没有后缀的文件名,此文件名不改变。如果一 个文件名中存在多个点号,则返回值为此文件名的最后一个点号之前的文件名部分。 |
示例 |
$(basename src/foo.c src-1.0/bar.c /home/jack/.font.cache-1 hacks) 返回值为:“src/foo src-1.0/bar /home/jack/.font hacks” |
addsuffix函数
函数名称 | 加后缀函数—addsuffix。 |
函数语法 | $(addsuffix SUFFIX,NAMES…) |
函数功能 | 为“NAMES…”中的每一个文件名添加后缀“SUFFIX”。参数“NAMES…”为空格分割的文件名序列,将“SUFFIX”追加到此序列的每一个文件名的末尾。 |
返回值 | 以单空格分割的添加了后缀“SUFFIX”的文件名序列 |
示例 |
$(addsuffix .c,foo bar) 返回值为“foo.c bar.c”。 |
addprefix函数
函数名称 | 加前缀函数—addprefix |
函数语法 | $(addprefix PREFIX,NAMES…) |
函数功能 | 为“NAMES…”中的每一个文件名添加前缀“PREFIX”。参数“NAMES…”是空格分割的文件名序列,将“SUFFIX”添加到此序列的每一个文件名之前 |
返回值 | 以单空格分割的添加了前缀“PREFIX”的文件名序列。 |
示例 | $(addprefix src/,foo bar) 返回值为“src/foo src/bar”。 |
join函数
函数名称 | 单词连接函数——join |
函数语法 | $(join LIST1,LIST2) |
函数功能 | 将字串“LIST1”和字串“LIST2”各单词进行对应连接。就是将“LIST2”中的第一个单词追加“LIST1”第一个单词字后合并为一个单词;将“LIST2”中的第二个单词追加到“LIST1”的第一个单词之后并合并为一个单词,……依次列推 |
返回值 | 单空格分割的合并后的字(文件名)序列。 |
函数说明 | 如果“LIST1”和“LIST2”中的字数目不一致时,两者中多余部分将被作为返回序列的一部分 |
示例 |
$(join a b , .c .o) 返回值为:“a.c b.o”。 $(join a b c , .c .o) |
wildcard函数
函数名称 | 获取匹配模式文件名函数—wildcard |
函数语法 | $(wildcard PATTERN) |
函数功能 | 列出当前目录下所有符合模式“PATTERN”格式的文件名。 |
返回值 | 空格分割的、存在当前目录下的所有符合模式“PATTERN”的文件名。 |
函数说明 | “PATTERN”使用shell可识别的通配符,包括“?”(单字符)、“*”(多字符)等。 |
示例 | $(wildcard *.c) 返回值为当前目录下所有.c 源文件列表 |