Wie führe ich jeden Befehl in einer Liste?
Wenn ich eine Liste von n Befehle c = c1 ... cn, wie kann ich Sie ausführen, um für ein bestimmtes Ziel? Ich habe versucht, die foreach konstruieren
$(foreach x,$(c),./$(x))
aber das setzt alle Befehle auf einer Zeile. Irgendwelche Hinweise?
- Klingt wie Sie möchten bash für mehr als Machen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du das problem identifiziert ("aber das setzt alle Befehle auf einer Zeile"). Sie müssen nur fügen Sie einen Zeilenumbruch, wenn Sie erweitern
$x
in der Schleife.Nun verwenden Sie einfach
$(foreach x,$c,./$(x)${\n})
in Ihrem Rezept.Wenn es keine Notwendigkeit zu prüfen, für den Erfolg, dann hinzufügen Semikolon funktionieren sollte:
Wenn Sie brauchen, um zu scheitern, wenn man den Befehl in der Liste Fehler zurückgibt, müssen Sie brechen Sie in Schritte. Anstelle der direkten Ausführung der Befehle, wir wickeln die Ausführung in einer Funktion: