설명: echo -e "\e]52;;HelloWorld"

설명: echo -e "\e]52;;HelloWorld"

HelloWorld나는 이것이 OSC 52 선언문이라고 생각하며 OSC 52 지원 터미널(예: Windows 터미널)을 사용하는 경우 호스트 클립보드로 전송됩니다 .

-e또한 이것이 백슬래시 이스케이프를 설명할 수 있다는 것도 알고 있습니다 .

\eESC 문자입니다 .

그런데 이것이 무엇을 ]52의미합니까, 아니면 단지 "]52" 문자열입니까?

무슨 ;;뜻인가요? 쉘에서는 ;이것이 명령/문의 끝을 의미한다고 생각합니다. 여기서 같은 것이면 두 개가 어디에 있는지 알 수 없습니다. echo -e "\e]52;c;HelloWorld"a와 함께 명령문을 사용할 수도 있는데 c, 이는 동일한 작업을 수행하는 것처럼 보이지만 ca는 무엇을 합니까?

그 안에서 답을 찾으려고 노력 중에코그리고세게 때리다수동으로 했지만 성공하지 못함

답변1

이 두 문자는 ;명령(OSC 52, 즉 \e]52), 첫 번째 인수 및 두 번째 인수를 구분합니다. 존재하다XTerm 제어 순서 문서, 첫 번째 매개변수는 Pc, 두 번째 매개변수는 이라고 합니다 Pd.

첫 번째 문자에는 , , , , , , , , , 및 Pc0개 이상의 문자가 포함될 수 있습니다. 이는 클립보드, 기본, 보조, 선택 또는 잘라내기 버퍼에 대한 선택 매개변수 목록을 지정된 순서로 각각 작성하는 데 사용됩니다. 인수가 비어 있으면 xterm은 를 사용하여 구성 가능한 기본/클립보드 선택 및 컷 버퍼를 지정합니다.cpqs0123456707s 00

Pd매개변수는 선택 데이터(base64 인코딩)입니다.

그래서 c그것은 "클립보드"를 의미합니다.

macOS의 iTerm에서는 다음 옵션 중 하나를 선택할 수 있습니다.

echo -e '\e]52;c;SGVsbG9Xb3JsZA==\a'

또는

echo -e '\e]52;c;SGVsbG9Xb3JsZA==\e\\'

클립보드 버퍼를 문자열로 설정합니다 HelloWorld(개행을 종료하지 않고). 후행 \e\\( ESC \) 또는 \a( BEL문자)는 데이터가 종료되는 방식입니다 \e\\.ECMA-48 표준이를 "문자열 종결자"라고 합니다.

관련 정보