我有以下make文件,我認爲它是一個shell腳本。Unix shell bash腳本無法放入echo調試語句
我試圖循環通過FILE_DIR
來執行一些操作。不過,我覺得這個實現並不像預期的那樣工作。所以我試圖插入一些echo
斷點。
來源:
# Target to recurse through the DIR_LIST and make each makefile found in that DIRS
ALLDIRS:
for se in $(FILE_DIR); do \
if [ -d $se ]; then \
cd $se; \
$(MAKE) -f Makefile.mk all; \
cd ..; \
fi \
done
運行:
$ make -f Makefile.batch
h: syntax error at line 3: `then' unexpected
*** Error code 2
The following command caused the error:
for se in `ls -p /app/internal|grep "/"`; do \
echo "Test" \
if [ -d e ]; then \
cd e; \
/usr/ccs/bin/make -f Makefile.mk all; \
cd ..; \
fi \
done
make: Fatal error: Command failed for target `ALLDIRS'
我能請得到幫助這一點。想插入一個echo
斷點。
我沒有看到你的'echo'語句的問題,而是你的'if'語句是兩個版本之間的不同。 – tjameson
我無法重現此錯誤。嘗試一個更簡單的命令。 – Beta
@tjameson第二個版本是make的輸出,完全顯示了我的答案中的第二點。 –