'git explain' 출력으로 변수를 시작한 이상한 결과

'git explain' 출력으로 변수를 시작한 이상한 결과

어떤 이유로 이 할당은 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)

관련 정보