Sono nuovo allo script di shell. Voglio chiamare un elenco di file make dallo script Shell in un ordine particolare. Per ogni makefile voglio ottenere il risultato (make è successo o fallimento). Se qualche errore voglio interrompere l'esecuzione dello script. Se è successo, devo eseguire il prossimo makefile.Chiamare makefile da Shell Script
risposta
Un linguaggio comune è quello di creare uno script di shell con set -e
; ciò causerà l'uscita dello script al primo errore.
#!/bin/sh
set -e
make -f Makefile1
make -f Makefile2
:
Se avete bisogno di un maggiore controllo sulla sceneggiatura nel complesso, forse rimuovere set -e
e invece esplicitamente uscita make
fallimento:
make -f Makefile1 || exit
make -f Makefile2 || exit
Per ridurre la duplicazione del codice, creare un ciclo:
for f in Makefile1 Makefile2; do
make -f "$f" || exit
done
Giusto per essere espliciti, lo ||
"o" e &&
"e" i connettivi sono abbreviazione di
if make -f Makefile1; then
: "and" part
else
: "or" part
fi
Infine, il comportamento che descrivi sembra esattamente come si comporta Make. Forse un Makefile di primo livello sarebbe in realtà una soluzione adatta al tuo scenario?
.PHONY: all
all:
$(MAKE) -f Makefile1
$(MAKE) -f Makefile2
make -f makefile1
make -f makefile2
l'esecuzione di make file in ordine
di salvare l'output di ogni makefile
make -f makefile1 >> output1
make -f makefile2 >> output2
per controllare il risultato dopo ogni file
make -f makefile1 >> output1
fare dopo questo script linea utilizzare
echo $? questo in combinazione con if. se echo $? risultato zero quindi il tuo successo quindi se echo $? risultato zero quindi esegui il file successivo altro saggio uscita
Potrebbe essere utile anche registrare gli errori, ad esempio 'make -f makefile1 & >> output1' – pfnuesel
- 1. Come chiamare uno script di shell e passare argomento da un altro script di shell
- 2. Chiamare uno script di shell da un'applicazione Groovy/Grails
- 3. Chiamare una funzione Python da uno script di shell
- 4. Come chiamare Makefile in un'altra directory?
- 5. Devo chiamare "makefile" o "Makefile"?
- 6. Come chiamare uno script di shell dal programma PLSQL
- 7. esecuzione di script di shell senza chiamare sh implicitamente
- 8. Come eseguire script di shell da LaTeX?
- 9. Uscita da shell Spark dallo script scala
- 10. Chiamata rscript da script di shell linux
- 11. valore restituito da script SQL per shell script di
- 12. Script Python eseguito con Makefile
- 13. Come chiamare lo script di shell da php che richiede SUDO?
- 14. Script della shell MongoDb
- 15. Test script shell
- 16. Importazione funzione script shell
- 17. script di shell: if
- 18. Script Comandi shell Karaf?
- 19. Come posso chiamare uno script python da uno script python
- 20. AutoHotKey: chiamare uno script da un altro script
- 21. Shell array di script
- 22. c makefile con i comandi della shell e le variabili
- 23. Come chiamare una funzione nella shell Scripting?
- 24. Come definire le funzioni globali della shell in un Makefile?
- 25. Chiamare il codice d da una shell interattiva
- 26. chiamata uno shell script da un altro script utilizzando percorsi relativi
- 27. Shell Script e SQL risultati
- 28. Come trovare uno script in un Makefile?
- 29. imposta LD_LIBRARY_PATH da Makefile
- 30. Eseguibile eseguibile da makefile
Come "make1 && make2 && make3'? – pfnuesel
Oppure 'make -f makefile1 && make -f makefile2 && ...' – devnull