[英]Calling makefiles from Shell Script
我是shell腳本的新手。 我想以特定的順序從Shell腳本調用make文件列表。 對於每個makefile,我想得到結果(make是成功還是失敗)。 如果有任何錯誤我想停止腳本執行。 如果成功,我必須運行下一個makefile。
一個常見的習慣用法是用set -e
創建一個shell腳本; 這將導致腳本在第一個錯誤時退出。
#!/bin/sh
set -e
make -f Makefile1
make -f Makefile2
:
如果您需要對整個腳本進行更多控制,可以刪除set -e
,而不是顯式退出make
失敗:
make -f Makefile1 || exit
make -f Makefile2 || exit
要減少代碼重復,請創建一個循環:
for f in Makefile1 Makefile2; do
make -f "$f" || exit
done
只是為了明確, ||
“或”和&&
“和”連詞是簡寫
if make -f Makefile1; then
: "and" part
else
: "or" part
fi
最后,您描述的行為聽起來與Make本身的行為完全一樣。 也許頂級Makefile實際上是適合您的場景的解決方案?
.PHONY: all
all:
$(MAKE) -f Makefile1
$(MAKE) -f Makefile2
make -f makefile1
make -f makefile2
按順序運行make文件
保存每個makefile的輸出
make -f makefile1 >> output1
make -f makefile2 >> output2
檢查每個make文件后的結果
make -f makefile1 >> output1
在此行腳本之后使用
回聲$? 這與if結合使用。 如果回音$? 結果為零然后你的成功所以如果echo $? 結果為零然后運行下一個文件其他明智的退出
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.