我正在浏览一些shell脚本,我遇到(第一次)使用“%”,有些事情如下:
{{1}}
我不知道这是什么意思。有点像“*”吗?
谢谢!
答案 0 :(得分:2)
这是来自makefile,而不是shell脚本。来自the documentation:
目标模式由前缀和后缀之间的“
%
”组成,其中一个或两个可以为空。仅当文件名以前缀开头并以后缀结尾且不重叠时,模式才匹配文件名。前缀和后缀之间的文本称为词干。因此,当模式“%.o
”与文件名test.o
匹配时,词干为“test
”。通过将词干替换为字符“%
”,将模式规则先决条件转换为实际文件名。因此,如果在同一示例中,其中一个先决条件被写为“%.c
”,则会扩展为“test.c
”。
因此,与“build / audio / base / * .wav”匹配的每个文件都具有“src-audio / * .wav”的依赖关系,其中由“*”表示的两个部分必须匹配。