将包含空格的文件的名称放在引号

时间:2015-04-25 23:09:45

标签: makefile gnu-make quotes spaces

假设我有一个类似以下的makefile。

foo: filename file\ name\ with\ spaces
    cat 'filename' 'file name with spaces' > foo

但是,我没有2个文件。我有很多,所以我试图通过这种方式使makefile更加一致。

foo: filename file\ name\ with\ spaces
    cat $^ > foo

只要文件名不包含任何空格,这样就可以正常工作。 是否可以将$^中的文件名放在单引号中? 或者是否有其他方法可以解决空间问题?

修改

我找到了部分解决方案。

foo: filename.txt file\ name\ with\ spaces.txt
    cat '$(subst .txt ,.txt' ',$^)' > foo

不幸的是,这仅适用于所有文件具有相同扩展名的情况。我不能编写适用于任何文件名的脚本。

0 个答案:

没有答案