我有一個Makefle具有以下規則
bash -c "find . |grep -E '\.c$|\.h$|\.cpp$|\.hpp$|Makefile' | xargs cat | wc -l"
我期待使運行引用bash腳本,並返回行的數量我項目。
在終端中直接運行該命令會執行該操作,但它在makefile中不起作用。 如果我從腳本刪除$
,它的工作...但並不如預期(因爲我只想*.{c,cpp,h,hpp,Makefile}
。
爲什麼bash -c
如果你寫這樣的規則不能正常運行我的腳本?
你是什麼意思完全不起作用 – ant 2012-07-19 11:57:30
可能重複[以下GNU make shell變量擴展有什麼問題?](http://stackoverflow.com/questions/7036352/whats-wrong-with-the -follow-gnu-make-shell-variable-expansion) – Gilles 2012-07-19 11:58:12
它不起作用,因爲它返回0作爲結果。 0,因爲它沒有查看* .c文件,但可能是* .c $,但是對於grep,「$」應該表示行尾 – freemanuu 2012-07-19 12:11:27