Ich gehe davon aus, dass wenn Schritt 2 fehlschlägt, möchten Sie von dort neu starten, und dieser Schritt N
ist abhängig von den vorherigen Schritten 1 .. N-1
.
Eine Möglichkeit, dies zu lösen, wäre Stempel Dateien zu erstellen, während Sie Ihr Skript ausführen.
einfach touch step1-stamp
, wenn Sie mit Schritt fertig sind 1, touch step2-stamp
, wenn Sie mit Schritt 2 fertig sind, usw.
Jeder Schritt würde prüfen, ob der Stempel für diesen Schritt vor besteht seine Aufgabe zu tun, zum Beispiel für N
Schritt:
if [ ! -f "stepN-stamp" ]; then
# do tasks for step N
touch stepN-stamp
fi
ein ähnlicher Ansatz mit einem Makefile:
.PHONY: all clean
all: step3-stamp
step1-stamp:
@echo "Performing step 1"
@touch step1-stamp
step2-stamp: step1-stamp
@echo "Performing step 2"
@touch step2-stamp
step3-stamp: step2-stamp
@echo "Performing step 3"
@touch step3-stamp
clean:
rm -f step[123]-stamp
Hinweis: Dies ist alles unter der Annahme, dass Sie don‘ Ich möchte zufällige Schritte ausführen. Was Sie könnte tun, ist eine oder mehrere Stempeldateien zu entfernen und den gesamten Prozess von Anfang an erneut auszuführen. Vor allem die Makefile-Lösung wird dies problemlos handhaben, da sie die erneute Ausführung abhängiger Schritte erzwingt.
Ihr Leben und das Leben Ihrer Mitarbeiter einfacher und betrachten eine * real * Programmiersprache zu verwenden. – hek2mgl
@ hek2mgl Es gibt nicht genug Details, um zu wissen, ob Shell die falsche Sprache ist. Wenn die Aktionen nur andere Probleme ausführen, ist Shell sicherlich eine gute Wahl. – chepner
@echepner Eigentlich hast du recht, ich habe das selbst gedacht - nachdem ich es gepostet habe. ;) Aber dann habe ich es verpasst es zu löschen. Dennoch würde ich sagen, dass die Shell, egal wie gerne wir damit spielen, einfach das falsche Werkzeug für die Anwendungsentwicklung ist. Es ist ok für wirklich begrenzte Aufgaben. Im Falle von Komplexität begrenzt. Es wird fast immer unordentlich, wenn sich die anfänglichen Aufgaben im Laufe der Zeit ändern.Wahrscheinlich der richtige Kommentar unter der falschen Frage. – hek2mgl