Ich habe einen Befehl:Bash: Wie git Befehl Fehler zu fangen?
...
{
git filter-branch -f --env-filter "$ENVFILTER" >/dev/null
echo "Git updated. Run 'git push -f BRANCH_NAME' to push your changes."
} || {
echo "Git failed. Please make sure you run this on a clean working directory." // this doesn't ever get called
}
Der glückliche Weg funktioniert, aber es sieht nicht wie die ||
jemals ausgeführt wird. So sieht ein Fehler aus:
[~/Documents/my-repo]$ my-custom-command
WARNING: Ref 'refs/heads/master' is unchanged
Git updated. Run 'git push -f BRANCH_NAME' to push your changes.
[
Gibt es eine Möglichkeit, diesen Fehler zu erfassen? Ich würde nicht einmal etwas dagegen, wenn es nur wurde passend zu dem WARNING: Ref 'refs/heads/master' is unchanged
Zeichenfolge, die ausgedruckt wird (was ich übrigens verbergen möchte)
die "Echo" Git aktualisiert "" Zeile tötet Ihren Fehlercode. Es setzt nur auf 0. –
@ yellowantphil, wenn es eine Möglichkeit gibt, dass das "echo" scheitert, das heikel ist - siehe [diese Antwort] (http://stackoverflow.com/a/17203203/2877364) (was ich sehr fand) informativ, als ich darüber stolperte). – cxw
@cxw dachte nicht daran. Ich dachte, die Yellowantphil-Syntax sei sehr gut. Aber ksh für immer :) Aber im Ernst, warum sollte Echo mit einem festen String-Argument scheitern? –