プログラムをstdinから読み込んで処理しています。 ( "tee/some/file"のように)expect:プロセスを生成するEOFを送る方法
このプログラムは、終了するためにstdin endを待機します。
私がExpect
からそれを生成すると、私はsend
多くのコンテンツの後、どのようにプログラムに "EOF"を送信するのですか?
Expectにはclose
コマンドがありますが、SIGHUPも送信され、expect
プログラム出力はできなくなります。
プログラムをstdinから読み込んで処理しています。 ( "tee/some/file"のように)expect:プロセスを生成するEOFを送る方法
このプログラムは、終了するためにstdin endを待機します。
私がExpect
からそれを生成すると、私はsend
多くのコンテンツの後、どのようにプログラムに "EOF"を送信するのですか?
Expectにはclose
コマンドがありますが、SIGHUPも送信され、expect
プログラム出力はできなくなります。
予想されるプログラムが実行される仮想端末を使用して(Windows以外の環境でも)期待しています。これは、キーをシミュレートするために文字シーケンスを送信することで処理を実行できることを意味します。特に、EOF control sequence is done with Ctrl+Dは、U + 000004という文字になります。端末はこれを処理して真のEOFにする。
あり、あなたが好むどのエスケープシーケンスに応じて、それを書くためのいくつかの方法、ですが、これらの一つが動作します:
# Hexadecimal-encoded escape
send \x04
# Octal-encoded escape
send \004
# UNICODE escape (also hexadecimal)
send \u0004
ときExpectはTcl 8.6を使用していますが、これらはすべて同じバイトコードを生成するので、あなたは好きです。
私は 'send \ x04'が行うと思います。それはCtrl + Dを送信します。 –