Shell - Unterdrückt die Ausgabe eines einzelnen Befehls

7

Ich habe einen rm *.o -Befehl in Makefile , um alle während der Kompilierung erzeugten Objektdateien zu entfernen. Einige Fehlerinformationen werden jedoch ausgegeben, wenn eine .o -Datei nicht existiert. Wie kann ich die Fehlerinformationsausgabe unterdrücken?

    
CDT 15.03.2013, 12:37
quelle

3 Antworten

11

Im Kontext von make , wichtiger als die Ausgabe, soll make nicht das Ergebnis von rm als Fehler behandeln. Es gibt zwei Möglichkeiten, damit umzugehen:

%Vor%

Der erste Weg besteht darin, dem Befehl ein Minuszeichen voran zu geben, das make anweist, den Rückkehrcode zu ignorieren. Dies ist der bevorzugte, make -spezifische Weg. Die zweite besteht darin, das -f -Flag zu verwenden, das nur für rm spezifisch ist.

Außerdem können Sie die Ausgabe mit 2> /dev/null unterdrücken oder nicht.

    
Hai Vu 15.03.2013, 12:48
quelle
6

In seltenen Fällen kann es auch notwendig sein, die Ausgabe auf /dev/null umzuleiten. Wahrscheinlich möchtest du rm *.o > /dev/null 2>&1 machen. Der > /dev/null -Teil sendet stdout an /dev/null und der 2>&1 sagt, dass stderr dorthin geschickt werden soll, wo stdout hingeht.

    
Steve 15.03.2013 12:40
quelle
2

rm -f *.o

oder

rm *.o >& /dev/null

    
shx2 15.03.2013 12:39
quelle

Tags und Links