이 주제에 관해 많은 스레드를 읽었지만 어떤 솔루션도 나에게 도움이 되지 않았습니다.
나는 다음을 수행하려고합니다 :
RELEASE_COMMAND_OUTPUT=$(exec ~/temp/execs/github-release release --user patick --repo $REPO_NAME --tag $RELEASE_VERSION --name $RELEASE_VERSION --description "$DESC")
그러나 출력은 변수 ./github-release
에 저장되지 않습니다 RELEASE_COMMAND_OUTPUT
.
나는 그 개념을 안다.명령 대체, 그러나 내가 시도한 솔루션 중 어느 것도 효과가 없었습니다. 내가 뭘 잘못했나요?
답변1
귀하의 질문에 대한 설명에서 설명했듯이 변수 RELEASE_COMMAND_OUTPUT
는STDOUT
(표준 출력)당신의 명령은 아니지만STDERR
(표준 에러), 이것이 당신의 경우인 것 같습니다.
명령의 출력이 의심스러운 경우 다음을 사용할 수 있습니다.프로세스 교체도착하다STDERR
빨간색 으로 표시해 둬다음 예에 표시된 대로:
command 2> >(while read line; do echo -e "\e[01;31m$line\e[0m" >&2; done)
이것은리디렉션( 2>
부분) 블록에 대한 입력으로 STDERR
터미널에 빨간색으로 인쇄됩니다.command
while
반대로 수행하여 STDOUT
빨간색으로 표시할 수도 있습니다.
command | grep .
grep은 다음에서만 작동하기 때문에STDOUT
노트: 일부 시스템에서는 필요할 수 있습니다.색상 활성화grep 에서 플래그를 사용하십시오 --color=auto
. Macos 및 Linux에서는 일반적으로 기본적으로 활성화되어 있습니다.