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 é stderr
saída, não stdout
. Ao executar um comando a partir de um terminal interativo, ambos stdout
e stderr
são configurados para ir para o terminal.
Se você queria a stderr
saída em sua variável (o que provavelmente não quer, mas de qualquer maneira), redirecione-a para stdout
assim:
OUT=$(git describe HEAD 2>&1)
Ou se você não queria que a pessoa que está executando seu script visse essa stderr
saída, jogue-a fora assim:
OUT=$(git describe HEAD 2>/dev/null)