2016-07-25 9 views
2

leite ich habe ein Skript, dessen letzte Zeile ist:bash: Exit-Code ignorieren, aber beibehalten Ausgang

git diff --no-index -- ./a.json ./b.json > ./a-b.diff

diff gibt einen Exit-Code von 1, wenn die Dateien unterscheiden, die mein Skript bewirkt, dass ein Bericht zu erstatten Error.

Wie kann ich den Exit-Code von diff ignorieren, aber die Ausgabe Redirect des Inhalts auf die Diff-Datei beibehalten?

Antwort

1

Versuchen:

git diff --no-index -- ./a.json ./b.json > ./a-b.diff || true 

Oder:

git diff --no-index -- ./a.json ./b.json > ./a-b.diff || : 

Oder, solange Sie nicht bash -e verwenden:

git diff --no-index -- ./a.json ./b.json > ./a-b.diff 
true 

Grundsätzlich können Sie jeden Befehl nach dem Einsatz Unterschied, den Sie kennen, wird einen Null (Erfolg) -Ausgangscode erzeugen.

+1

Danke! Erste Option funktioniert ein Vergnügen. Ich benutze '-e'. Aus irgendeinem Grund dachte ich nicht, ich könnte das '|| benutzen true' Syntax nach der Ausgabeumleitung. Diese Argumentation war fehlerhaft. – grenade

Verwandte Themen