По какой-то причине это назначение: OUT=$(git describe HEAD) печатает на стандартный вывод (например): fatal: No names found, cannot describe anything.

Это нормальное поведение? Почему этого не происходит с другими командами?

1 ответ1

1

Это на самом деле вывод stderr , а не stdout . При запуске команды из интерактивного терминала и stdout и stderr настроены на переход в терминал.

Если вы хотели получить вывод stderr в своей переменной (что, вероятно, нет, но в любом случае), перенаправьте его на stdout следующим образом:

OUT=$(git describe HEAD 2>&1)

Или, если вы не хотите, чтобы человек, выполняющий ваш скрипт, видел вывод stderr , выбросьте его так:

OUT=$(git describe HEAD 2>/dev/null)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .