問題タブ [open4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby - プロンプト付きのRuby open4r複数システム呼び出し
open4 を使用してキーペアを生成する小さな lib を作成しようとしていますが、これは複数のプロンプトでシステム コールを処理する最良の方法ですか?
ruby - Ruby を使用してコンソール アプリを Web に公開する
JSON または Ruby を使用した別の RPC スタイル サービスを介して、対話型のコマンド ライン プログラムを公開しようとしています。これを行うためのいくつかのトリックを見つけましたが、出力と入力をリダイレクトするときに何かが欠けています。
少なくともLinuxでの1つの方法は、stdinとstdoutをファイルにリダイレクトしてから、ファイルの読み取りと書き込みとは非同期にそのファイルに読み書きすることです。グーグルで調べた後に試した別の方法は、open4を使用することでした。これまでに書いたコードは次のとおりですが、標準出力から数行を読み取った後にスタックします。
これまたはいくつかの洞察に関する助けをいただければ幸いです!
ruby - プログラムが標準入力を待っているときにopen4が標準出力から読み取れないのはなぜですか?
私はopen4
宝石を使用していますが、生成されたプロセスの標準出力からの読み取りに問題があります。私はルビープログラムを持っていますtest1.rb
:
そして、同じディレクトリにある別の ruby プログラムtest2.rb
:
2 番目のプログラムを実行すると:
何も印刷せずに永遠にそこに座っています。なぜこれが起こるのですか?それを止めるにはどうすればよいですか?
ruby - Rubyですべての置換を連結に変換する文字列ベースのクラス?
open4::backgroundを使用してシェルでプロセスを開きます。open4 :: backgroundを使用すると、<<、each、read、またはto_sを実装する任意のクラスをstdxへのハンドルとして使用できます。
現在文字列を使用していますが、stdoutで書き込みが発生するたびに、古い値が置き換えられます。特定の文字列のような関数を実装するクラスの受け入れを考慮して、置換の代わりに新しい書き込みを追加するために使用できる単純なクラスはありますか?
私はRubyを初めて使用し、この部分をプラグインしたいと思っています。誰かがこのための単純な既存のクラスに貢献したり、指摘したりできる場合は、それをいただければ幸いです。
http://www.ruby-forum.com/topic/151316:http://www.ruby-forum.com/topic/151316でこれを説明するスレッドがありますが、これは私が今やろうとしていることには少し複雑すぎると思います。Ruby n00bとして、他の誰かが私のためにそのサンプルをマッサージすることができれば、私はより快適に感じるでしょう。
ありがとう。
編集:
Phrogzの要求に従って、これが私ができるようにしたいことです:
ruby - Ruby モジュール関数の呼び出しでオプションを設定する
Ruby の open4 からのこのスニペットを検討してください。
gem を使用するコードからこの関数を呼び出すときに、ignore_exit_failure == true にしたいとします。どうすればいいですか?
編集: getopts は、オプションを渡すための標準的な Ruby モジュールであると想定していたと思います。Alex Kliuchnikau のコメントによる getopts の定義は次のとおりです。
open4
おそらく、これはモジュールに精通している人にとっては単なる質問です。
ruby - Open4 ですべての stdout 出力をインタラクティブにキャプチャするにはどうすればよいですか?
Ruby スクリプトでシェル コマンドを実行しようとしています。問題のシェル コマンド ( pg_dump
) は、ユーザーにパスワードの入力を求めます。私がやりたいことは、シェル コマンドを子プロセスで実行し、親プロセスに対話的にパスワードを入力させることです。
ユーザーに表示されないように、親プロセスによってすべてキャプチャされますstdout
。stderr
ここにいくつかのコードがあります。Open4 がstdout
シェル コマンドからキャプチャできることを示すだけです。残念ながら、それは行っていません。
これが出力です。Open4 にはstdout
.
私は何が欠けていますか?助けてくれてありがとう。
ruby - Ruby 1.8.7 を使用して、シェルを実行し、PID、STDOUT、STDERR、ステータスを取得できますか?
シェル スクリプトを実行して、PID、STDERR、STDOUT、およびシェルの終了ステータスを取得しようとしています。
Ruby 1.8.7 を使用しているため、Open3 には PID を取得する方法がありません。open4 gem を使用してみましたが、残念ながら書き込みプロセス中にいくつかのスクリプトがハングしました。手動で実行すると問題なく動作します。
代替案を見つけたいと思います。ご指導よろしくお願いします!