>백엔드 개발 >Golang >Go의 쉘 명령에서 실시간 출력을 검색하는 방법은 무엇입니까?

Go의 쉘 명령에서 실시간 출력을 검색하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-11 02:56:09262검색

How to Retrieve Realtime Output from Shell Commands in Go?

Go의 셸 명령에서 실시간 출력 검색

문제:

실행하고 싶습니다. 시간이 걸릴 수 있고 실시간 출력을 검색하여 처리하고 진행 상황으로 표시할 수 있는 Go의 셸 명령 정보.

해결책:

1. 쉘 명령 실행을 위해 os/exec 사용:

exec.Command를 사용하여 명령을 생성하여 원하는 쉘 명령을 실행합니다.

2. 표준 오류 캡처(stderr) 출력:

기본적으로 셸 명령의 진단 메시지는 stdout 대신 stderr로 전송됩니다. cmd.StderrPipe()를 사용하여 stderr 스트림을 캡처합니다.

3. 출력을 읽는 스캐너 만들기:

stderr 스트림을 읽는 스캐너를 만들려면 bufio.NewScanner를 사용하세요. bufio.ScanWords를 사용하여 스캔을 단어로 분할하여 개별 출력 라인을 얻습니다.

4. 처리 및 출력 표시:

루프 내에서 scanner.Scan() 메서드를 사용하여 각 출력 줄을 검색합니다. 이를 처리하여 진행률 등 원하는 정보를 추출합니다. 그런 다음 처리된 출력을 표시합니다.

5. 예제 코드:

다음은 이를 수행하는 방법을 보여주는 예제 코드입니다.

이 단계를 수행하면 셸 명령 및 프로세스에서 실시간 출력을 검색할 수 있습니다. 진행 상황이나 기타 원하는 정보를 표시합니다.

위 내용은 Go의 쉘 명령에서 실시간 출력을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.