Aus irgendeinem Grund wird diese Zuweisung OUT=$(git describe HEAD)
beispielsweise auf die Standardausgabe gedruckt:fatal: No names found, cannot describe anything.
Ist das ein normales Verhalten? Warum passiert das bei anderen Befehlen nicht?
Antwort1
Das ist eigentlich stderr
Ausgabe, nicht stdout
. Wenn Sie einen Befehl von einem interaktiven Terminal ausführen, sind sowohl als auch so stdout
eingestellt stderr
, dass sie zum Terminal gehen.
Wenn Sie die stderr
Ausgabe in Ihrer Variable haben möchten (was wahrscheinlich nicht der Fall ist, aber egal), leiten Sie sie stdout
folgendermaßen um:
OUT=$(git describe HEAD 2>&1)
Oder wenn Sie nicht möchten, dass die Person, die Ihr Skript ausführt, diese Ausgabe sieht stderr
, löschen Sie sie wie folgt:
OUT=$(git describe HEAD 2>/dev/null)