По какой-то причине это назначение OUT=$(git describe HEAD)
выводит на стандартный вывод (например):fatal: No names found, cannot describe anything.
Это нормальное поведение? Почему этого не происходит с другими командами?
решение1
Это на самом деле stderr
вывод, а не stdout
. При запуске команды из интерактивного терминала оба stdout
и stderr
настроены на отправку в терминал.
Если вы хотите получить stderr
вывод в своей переменной (что вам, вероятно, не нужно, но в любом случае), перенаправьте его следующим stdout
образом:
OUT=$(git describe HEAD 2>&1)
Или, если вы не хотите, чтобы тот, кто запускает ваш скрипт, видел этот stderr
вывод, выбросьте его следующим образом:
OUT=$(git describe HEAD 2>/dev/null)