HelloWorld
나는 이것이 OSC 52 선언문이라고 생각하며 OSC 52 지원 터미널(예: Windows 터미널)을 사용하는 경우 호스트 클립보드로 전송됩니다 .
-e
또한 이것이 백슬래시 이스케이프를 설명할 수 있다는 것도 알고 있습니다 .
\e
ESC 문자입니다 .
그런데 이것이 무엇을 ]52
의미합니까, 아니면 단지 "]52" 문자열입니까?
무슨 ;;
뜻인가요? 쉘에서는 ;
이것이 명령/문의 끝을 의미한다고 생각합니다. 여기서 같은 것이면 두 개가 어디에 있는지 알 수 없습니다. echo -e "\e]52;c;HelloWorld"
a와 함께 명령문을 사용할 수도 있는데 c
, 이는 동일한 작업을 수행하는 것처럼 보이지만 c
a는 무엇을 합니까?
답변1
이 두 문자는 ;
명령(OSC 52, 즉 \e]52
), 첫 번째 인수 및 두 번째 인수를 구분합니다. 존재하다XTerm 제어 순서 문서, 첫 번째 매개변수는 Pc
, 두 번째 매개변수는 이라고 합니다 Pd
.
첫 번째 문자에는 , , , , , , , , , 및
Pc
0개 이상의 문자가 포함될 수 있습니다. 이는 클립보드, 기본, 보조, 선택 또는 잘라내기 버퍼에 대한 선택 매개변수 목록을 지정된 순서로 각각 작성하는 데 사용됩니다. 인수가 비어 있으면 xterm은 를 사용하여 구성 가능한 기본/클립보드 선택 및 컷 버퍼를 지정합니다.c
p
q
s
0
1
2
3
4
5
6
7
0
7
s 0
0
이 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 표준이를 "문자열 종결자"라고 합니다.