Acho que esta é uma instrução OSC 52 e será enviada HelloWorld
para a área de transferência do host se você usar um terminal compatível com OSC 52, como o Windows Terminal.
Também sei que isso -e
permitirá a interpretação de escapes de barra invertida.
E \e
é um caractere ESC.
Mas o que ]52
significa, ou é simplesmente uma string de "]52"?
E o que ;;
significa? No shell, acredito ;
que signifique algo como o final de um comando/declaração. Se é a mesma coisa aqui, então não entendo onde há dois. Você também pode usar a instrução echo -e "\e]52;c;HelloWorld"
com um c
, parece fazer a mesma coisa, mas o que fará c
?
Tentei encontrar as respostas no manual de eco e bash , mas não consegui
Os dois
;
delimitam o comando (OSC 52, que é\e]52
), o primeiro e o segundo parâmetro. No documento XTerm Control Sequences , o primeiro parâmetro é chamadoPc
enquanto o segundo parâmetro é chamadoPd
.O
Pd
parâmetro são os dados de seleção (codificados em base64).Então
c
significa "prancheta".No macOS, no terminal iTerm, qualquer um dos
ou
define o buffer da área de transferência para a string
HelloWorld
(sem caractere de nova linha de terminação). O final\e\\
(ESC \
) ou\a
(oBEL
caractere) é como os dados devem ser terminados, onde\e\\
é o que o padrão ECMA-48 chama de "terminador de string".