Make
Makefile 命令替換
我的製作文件:
all: ...(other rules) clean clean: rm $(find . -type f -executable)
當我從上面的 Makefile 中刪除
clean
規則時,一切都按預期工作。添加後,make
(也make clean
)命令導致:rm rm: missing operand Try 'rm --help' for more information. make: *** [Makefile:46: clean] Error 1
是什麼導致這裡出現問題,我該如何解決?
你想執行命令
rm $(find . -type f -executable)
讓 shell 進行命令替換。為此,您需要編寫
clean: rm $$(find . -type f -executable)
隨著美元翻了一番。如果您的版本
find
支持它,最好使用clean: find . -type f -executable -delete
因為如果您的文件名中包含諸如空格之類的字元,它可以避免在 find 的輸出中出現問題。