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