SSH接続を開き、サーバーにコマンドを送信して応答を受信できるようにするために、ラッパーライブラリ(C#で、ただしここではそれほど重要ではありません)に取り組んでいます。ただし、主なことは、コマンド呼び出しで応答ストリームをバッファリングし、シェルがコンソール プロンプトに戻ったら、すべてを 1 つの文字列としてユーザーに返すことです。そうすれば、コマンドを実行するだけで済み、ジョブ中にサーバーがコンソールに書き戻すたびにすべての応答イベントを処理する必要がなくなります。
それで、私の主な質問は、VT100 セッションで、サーバーが入力プロンプトに戻ったことを確実に判断する方法はありますか? これまでに見つけた唯一のことは、私が試した2つのsshサーバー(cygwinとFedora)で、常に出力されるように見える最後の文字シーケンスは '[esc] [0m' [esc]、ASCIIであるということですcode 27 これは標準的なものだと思いたいのですが、そのシーケンスが何であるかを調べたところ、次のことがわかりました。
modeoff SGR0、文字属性をオフにする
「入力を待っています」のような、より具体的な何かを望んでいました:P
これがすべて/ほとんどのシステムで機能するかどうかのアイデアはありますか? または、より良い方法があれば?