Go의 'HijackedResponse'에서 커서 위치 ANSI 이스케이프 코드를 제거하는 방법은 무엇입니까?

PHPz
풀어 주다: 2024-02-09 09:42:19
앞으로
629명이 탐색했습니다.

如何从 Go 中的“HijackedResponse”中删除光标位置 ANSI 转义代码?

Go 언어 개발에서는 때때로 "HijackedResponse"에서 커서 위치의 ANSI 이스케이프 코드를 제거해야 할 때가 있습니다. 이러한 이스케이프 코드는 일반적으로 터미널에 컬러 텍스트를 표시하거나 커서 위치를 제어하는 ​​데 사용되지만 경우에 따라 이를 제거해야 할 수도 있습니다. 이 기사에서는 Go 언어의 문자열 조작 기능과 정규식을 사용하여 "HijackedResponse"에서 이러한 ANSI 이스케이프 코드를 제거하는 방법을 소개합니다. 당신이 Go 언어의 초보자이든 숙련된 개발자이든 이 글은 이 문제를 해결하는 데 도움이 될 것입니다.

질문 내용

go를 사용하여 도커 컨테이너를 (대화형으로) 실행하려고 합니다. 제가 사용하고 있는 코드는 다음과 같습니다:

으아악

...그리고 여기로 holdhijackedconnection 전화하세요:

으아악

몇 가지 참고사항:

  • sh 필수입니다. 산 이미지입니다
  • injection.container 컨테이너에 대한 정보만 저장하는 맞춤형 구조입니다
  • docker 是一个结构体,用于保存 docker 客户端(来自 github.com/docker/docker/client 的 client예시)

애플리케이션을 실행하면 다음과 같은 CLI 결과가 나옵니다.

/usr/app $ ^[[43;12r

내가 아는 한 ^[[43;12r은 커서 위치에 대한 ansi 이스케이프 코드입니다. lsnpm i 등과 같은 명령을 실행할 수 있지만 항상 이러한 ansi 이스케이프 코드를 반환받습니다.

제 질문은, 표준 출력에서 ​​이를 제거할 수 있는 방법이 있느냐는 것입니다.

해결책

드디어 찾았습니다.

문제는 github.com/docker/cli/cli/command 包及其 dockercli 而不是 os.std...을 사용해야 하느냐는 것입니다. 이는 다음과 같이 출력, 오류 및 입력 스트림을 설정하여 이를 관리합니다.

으아악

ctrl+c 이스케이프를 추가하려면 containerexeccreate处的execconfig中设置detachkeys。否则执行 exit로 구분해야 합니다.

위 내용은 Go의 'HijackedResponse'에서 커서 위치 ANSI 이스케이프 코드를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!