Resultado estranho de iniciar uma variável com a saída de 'git description'

Resultado estranho de iniciar uma variável com a saída de 'git description'

Por alguma razão esta atribuição: OUT=$(git describe HEAD)imprime no stdout (por exemplo):fatal: No names found, cannot describe anything.

Este é um comportamento normal? Por que isso não acontece com outros comandos?

Responder1

Na verdade, isso é stderrsaída, não stdout. Ao executar um comando a partir de um terminal interativo, ambos stdoute stderrsão configurados para ir para o terminal.

Se você queria a stderrsaída em sua variável (o que provavelmente não quer, mas de qualquer maneira), redirecione-a para stdoutassim:

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

Ou se você não queria que a pessoa que está executando seu script visse essa stderrsaída, jogue-a fora assim:

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

informação relacionada