Nel mio makefile
io ho
run_sh:
echo"run script";
toolk -run -tcl sequence.tcl | tee ./log/catch.log;
$(call chck "./log/catch.log")
Voglio catturare error status=0
messaggio dal file di registro sopra e controllare, se non "0", uscire dal modulo di creazione del file. quindi ho scritto questa funzione e chiamandola nel mio target run_sh.
define chck
log=$(1)
STAT=`cat $(1) | grep "exit status=0"`
ifneq ($(STAT),"exit status=0")
$(error error in script)
endif
endef
È il modo corretto di scrivere, perché ricevo un errore.
risposte:
1 per risposta № 1Cosa ne pensi di questo:
run_sh:
echo"run script"; toolk -run -tcl sequence.tcl | tee ./log/catch.log;
grep "error status=0" ./log/catch.log || exit
MODIFICARE:
Non ho accesso a GNUMake 3.79.1, quindi dobbiamo eseguire alcuni esperimenti. Imposta questa regola:
run_sh:
exit
e prova "make run_sh" (non "crea" o "crea tutto" o qualsiasi altra cosa). Qual'è il risultato? (Non limitarti a dire "non" funziona ", mostraci l'output.)