是否可以編寫不評估的make
規則$(shell)
表達式直到前面的操作已經執行完畢?在制定規則中執行
一個人爲的例子:
all : clean
echo 'hey' > test
echo $(shell cat test)
clean :
rm test
然後運行make
將導致以下錯誤:
cat: test: No such file or directory
echo
這個問題似乎是make
之前通過的規則去評估shell
命令,所以那test
還不存在。有沒有解決這個問題的好方法?
作爲背景,我想要做的是編寫一個make規則,檢查一個git存儲庫的不同分支,並以需要評估的方式執行操作。 $(shell git ls-files)
;但在切換分支之前對git ls-files
進行評估。
你可能會說'echo'hey'> test && echo $(shell cat test)'。 – cHao
這根本沒有幫助。 – tripleee