Da die Menge der Ausgabe unbestimmt ist, macht es keinen Sinn für bash
um es für Sie zur erneuten Anzeige zu speichern. Aber es gibt eine alternative Lösung für Ihr Problem:
Die tee
Mit dem Befehl können Sie einen Ausgabestream in eine Datei duplizieren. Wenn Sie also bereit sind, eine Datei zur temporären Speicherung zu verwenden, können Sie Folgendes tun:
make | tee output.txt
grep "warning" output.txt
Diese Lösung vermeidet die Ausführung von make
zweimal, was (a) teuer und (b) inkonsistent sein könnte:Die zweite Marke macht möglicherweise weniger Arbeit als die erste, weil einige Ziele bereits beim ersten Mal erstellt wurden.
Hinweis:Das habe ich nicht ausprobiert. Möglicherweise müssen Sie mit dem Verbinden der Fehler- und Ausgabestreams oder dergleichen herumspielen.
Sie könnten dies tun:
make
!! | grep "warning"
Durch die Verwendung von !!
Sie weisen es an, den letzten Befehl an dieser Stelle zu wiederholen, zusammen mit allen anderen Bash-Befehlen, die Sie hinzufügen möchten.
Der Nachteil ist, dass Sie viel länger warten müssen, wenn der Befehl, den Sie wiederholen, lange dauert, es sei denn, Sie haben die Ausgabe des vorherigen Befehls zuerst in einer Ausgabedatei gespeichert.