説明: echo -e "\e]52;;HelloWorld"

説明: echo -e "\e]52;;HelloWorld"

HelloWorldこれはOSC 52宣言文であると考えており、OSC 52サポート端末(Windows端末など)を使用している場合はホストクリップボードに送信されます。

-eまた、これがバックスラッシュエスケープを説明できることも知っています。

\eESC文字です。

しかし、これはどういう]52意味ですか、それとも「] 52」文字列ですか?

どういう;;意味ですか?シェルでは;これがコマンド/ステートメントの終わりを意味すると思います。ここで同じであれば、2つがどこにあるのかわかりません。echo -e "\e]52;c;HelloWorld"aでステートメントを使用することもできますがc、これは同じことをするようですが、caは何をしますか?

その中で答えを見つけようとしています。エコそして強く打つ手動で行ったが成功しなかった

答え1

これら2つの文字は、;コマンド(OSC 52、つまり\e]52)、最初の引数、および2番目の引数を区別します。存在するXTerm制御シーケンス文書、最初のパラメータはPc、2番目のパラメータはと呼ばれます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 \)または\aBEL文字)はデータが終了する方法です\e\\ECMA-48規格これを「文字列終端者」といいます。

関連情報