В моето makefile
аз имам
run_sh:
echo"run script";
toolk -run -tcl sequence.tcl | tee ./log/catch.log;
$(call chck "./log/catch.log")
Искам да хвана error status=0
съобщение от горния лог файл и проверете, ако не "0" изход формуляр направи файл. така че съм написал тази функция и я извиквам в целевия ми run_sh.
define chck
log=$(1)
STAT=`cat $(1) | grep "exit status=0"`
ifneq ($(STAT),"exit status=0")
$(error error in script)
endif
endef
Правилният начин за писане ли е, защото получавам грешка.
Отговори:
1 за отговор № 1Какво ще кажете за това:
run_sh:
echo"run script"; toolk -run -tcl sequence.tcl | tee ./log/catch.log;
grep "error status=0" ./log/catch.log || exit
РЕДАКТИРАНЕ:
Нямам достъп до GNUMake 3.79.1, така че трябва да извършим някои експерименти. Задайте това правило:
run_sh:
exit
и опитайте „направи run_sh“ (не "направи" или "направи всичко" или нещо друго). Какъв е резултатът? (Не казвайте просто „не работи“, покажете ни резултата.)