您的位置首页百科词条

patsubst:模式字符串替换 我想问下什么是模式字符串啊??这是一道linux的知识。

patsubst:模式字符串替换 我想问下什么是模式字符串啊??这是一道linux的知识。

patsubst 应该是 makefile 里的一个函数 (如果你问的 patsubst 是其他语言里的,那就别看下面的了)

比方说你在 makefile 里定义了一个变量,内容是一堆 .c 文件的的名字,如

SRC = aaa.c bbb.c my.c his.c

你可以用 patsubst 根据 某种模式,将这些名字改成另外的,比如将这些 .c 文件的名字变成 .s 为后缀的名字:

NEW = $(patsubst "%.c", "%.s", ${SRC})

这样 NEW 这个变量中,就记录了 aaa.s bbb.s my.s his.s 这些后缀名为 .s 的文件。 上面命令中的模式字符串就是 "%.c" 或 "%.s", 而其中的 "%" 就是特殊的匹配字符,对于 aaa.c 这个字符串来说, "%.c" 中的% 就匹配 aaa。 这个很像我们在 bash 或者 dos 下用 *.c 匹配所有 .c 文件时候的那个 *