Goの「HijackedResponse」からカーソル位置のANSIエスケープコードを削除するにはどうすればよいですか?

PHPz
リリース: 2024-02-09 09:42:19
転載
670 人が閲覧しました

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

Go 言語の開発では、「HijackedResponse」からカーソル位置の ANSI エスケープ コードを削除する必要がある場合があります。これらのエスケープ コードは通常、端末に色付きのテキストを表示したり、カーソル位置を制御したりするために使用されますが、場合によっては削除する必要がある場合があります。この記事では、Go 言語の文字列操作関数と正規表現を使用して、「HijackedResponse」からこれらの ANSI エスケープ コードを削除する方法を紹介します。 Go 言語の初心者であっても、経験豊富な開発者であっても、この記事はこの問題の解決に役立ちます。

質問内容

goを使ってDockerコンテナを(対話的に)実行しようとしています。 これは私が使用しているコードです:

リーリー

...ここで holdhijackedconnection を呼び出します:

リーリー

いくつかのメモ:

  • sh は必須です。山の画像です
  • injection.container コンテナに関する情報を保存するだけで、カスタム構造です
  • docker は、docker クライアント (github.com/docker/docker/client の client のインスタンス) を保存するために使用される構造です。
アプリケーションを実行すると、得られる cli の結果は次のとおりです:

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

私の知る限り、^[[43;12r はカーソル位置の ANSI エスケープ コードです。

lsnpm i などのコマンドを実行できますが、常にこれらの ANSI エスケープ コードが返されます。

私の質問は、標準出力からそれらを削除する方法はあるのでしょうか?

解決策

ついに見つけました。

問題は、

os.std...#の代わりに、github.com/docker/cli/cli/command パッケージとその dockercli を使用する必要があることです。 ## 。これにより、次のように出力、エラー、入力ストリームを設定することで、この問題を管理できます。 リーリー Ctrl C Escape を追加したい場合は、containerexeccreate

execconfigdetachkeys を設定する必要があります。それ以外の場合は、exit を実行すると接続が解除されます。

以上がGoの「HijackedResponse」からカーソル位置のANSIエスケープコードを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート