假设我有一个类似以下的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
不幸的是,这仅适用于所有文件具有相同扩展名的情况。我不能编写适用于任何文件名的脚本。