Jestem nowy w skrypcie powłoki. Chcę wywołać listę plików make ze skryptu Shell w określonej kolejności. Dla każdego makefile chcę uzyskać wynik (make to success or failure). Jeśli jakiś błąd chcę zatrzymać wykonywanie skryptu. Jeśli to sukces, muszę uruchomić następny plik Makefile.Wywoływanie plików Makefile z Shell Script
Odpowiedz
Powszechnym idiomem jest stworzenie skryptu powłoki z set -e
; to spowoduje, że skrypt zakończy działanie przy pierwszym błędzie.
#!/bin/sh
set -e
make -f Makefile1
make -f Makefile2
:
Jeśli potrzebujesz większej kontroli nad scenariuszem wierzchnie może usunąć set -e
i zamiast wyraźnie zjazd na make
awarii:
make -f Makefile1 || exit
make -f Makefile2 || exit
celu zmniejszenia powielania kodu, należy utworzyć pętlę:
for f in Makefile1 Makefile2; do
make -f "$f" || exit
done
Dla jasności, ||
"lub" i &&
"i" łączniki są skrótem dla
if make -f Makefile1; then
: "and" part
else
: "or" part
fi
W końcu opisane zachowanie brzmi dokładnie tak, jak zachowuje się sama marka. Być może plik Makefile na najwyższym poziomie byłby właściwie odpowiednim rozwiązaniem dla twojego scenariusza?
.PHONY: all
all:
$(MAKE) -f Makefile1
$(MAKE) -f Makefile2
make -f makefile1
make -f makefile2
uruchomić tworzyć pliki w kolejności
ratowania wyjście każdego makefile
make -f makefile1 >> output1
make -f makefile2 >> output2
aby sprawdzić wynik po każdej marki plikowi
make -f makefile1 >> output1
po tym skrypcie linii użyć
echo $? to w połączeniu z if. jeśli echo $? wynik zero, a następnie twój sukces, więc jeśli echo $? wynik zero następnie uruchom następny plik inne mądre wyjście
Pomocne może być również zarejestrowanie błędów, np. 'Make -f makefile1 & >> output1' – pfnuesel
- 1. Script Shell i SQL wyniki
- 2. Java Script Shell Execute spakowany w JAR
- 3. Shell Script + Zapis do pliku String
- 4. Bash Shell Script - Sprawdź flagą i zgarnij swoją wartość
- 5. Bash Shell Script - Napisz do niestandardowego pliku dziennika
- 6. Get App Pool Tożsamość dla IIS w Elektrowni Shell Script
- 7. Jak zautomatyzować tworzenie nowych obiektów docelowych XCode z Applescript/Automator/Shell Script
- 8. wywoływanie plików wsadowych wewnątrz nant
- 9. Grails shell nie rekompiluje zmienionych plików
- 10. zmienna Drukowanie z poziomu Makefile
- 11. makefile - kompilacja wszystkich plików c na raz
- 12. Wiele plików tworzących projekt Type Script
- 13. Pobieranie nazwy pliku Makefile z pliku Makefile
- 14. Skompiluj wszystkie mniej plików za pomocą makefile
- 15. wywoływanie funkcji javascript z php
- 16. Linux: Tworzenie automatycznie C++ makefile z podanych plików źródłowych
- 17. Wywoływanie aplikacji z subprocess.call z argumentów
- 18. Programowanie jądra Linuksa: makefile
- 19. Uciekając w makefile
- 20. Integracja z Windows Shell
- 21. shell skrypt: if
- 22. rurociągi Shell z podproces w Pythonie
- 23. zestaw LD_LIBRARY_PATH z Makefile
- 24. Wywoływanie bitu MSYS z Windows cmd
- 25. Java + Groovy Script - Inheritance
- 26. Znajdowanie zależności między plikami Makefile
- 27. Automatyczne instalowanie pakietów z pliku makefile
- 28. Krok pre-build makefile
- 29. patsubst na makefile
- 30. Makefile do umieszczania plików obiektowych z plików źródłowych różnych katalogów w jednym, osobnym katalogu?
Podoba Ci się 'make1 && make2 && make3'? – pfnuesel
Lub 'make -f makefile1 && make -f makefile2 && ...' – devnull