Make

Makefile 命令替換

  • September 19, 2021

我的製作文件:

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 的輸出中出現問題。

引用自:https://unix.stackexchange.com/questions/669679