9

javaを使用してexpect "interact"コマンドを実装したいと思います。予想通り、ssh セッションを開いて認証し、「interact」コマンドを使用して制御をユーザーに戻すことができます。それはJavaで可能ですか?私はexpectJ、expect4J、およびexpectForJavaを試しましたが、ドキュメントはほとんどなく、これを行う方法の例はほとんどありません. ティア。

更新: 「対話」コマンド リファレンスについては、これをチェックしてください: http://wiki.tcl.tk/3914

「Interact は、現在のプロセスの制御をユーザーに与える Expect コマンドです。そのため、キーストロークが現在のプロセスに送信され、現在のプロセスの stdout と stderr が返されます。」

4

2 に答える 2

2

誰かが興味を持っている場合に備えて、バージョン 0.8 以降、基本的な対話型ループのサポートをExpectItに追加しました。これは、Java 実装用の私自身のオープン ソース Expect (自己宣伝で申し訳ありません) です。

Java 8 でシステム入力ストリームを操作する例を次に示します。

        try (final Expect expect = new ExpectBuilder()
                .withInputs(System.in)
                .build()) {
            expect.interact()
                    .when(contains("abc")).then(r -> System.out.println("A"))
                    .when(contains("xyz")).then(r -> System.err.println("B"))
                    .until(contains("exit"));
            System.out.println("DONE!");
        }
        System.in.close();
于 2015-08-21T12:22:31.037 に答える