コードには子プロセスのstdinに書き込むものが含まれていないため、実際にはコマンドをまったく送信しない場合(不完全またはその他)に、不完全なコマンドを示す省略記号が表示された場合は驚きます。
>
そうは言っても、多くのコマンドラインユーティリティは、stdin/stdoutに接続された実際の端末を検出したときの動作が異なります。例えば。 git log
直接実行すると結果がページングされますが、 gitlog|などの他のコマンドに結果をパイプする場合はページングされません。猫
したがって、これはここでも当てはまる可能性があります。
これはバッファリングにも関係している可能性があります。ストリームが行バッファリングされている場合、改行で終了していない行はすぐには表示されません。
本当の質問は次のとおりです。>コード>が表示されますか 促す?モンゴシェルにコマンドを送信しますか?
インタラクティブなCLIツールのスクリプティングには注意が必要です。例えば。非常に単純なインタラクティブプログラムをテストするために私がしなければならなかったことをここで見てください:
2つの名前付きパイプを作成し、stdin、stderr、およびstdoutがバッファリングされていないことを確認してから、他のトリックを使用して機能させる必要がありました。これはシェルスクリプトですが、例を示すだけです。