問題タブ [qx]
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.
perl - Perlのシステムコールの標準出力ファイルハンドルを変更するにはどうすればよいですか?
selectを使用してシステム関数のstdoutを変更しようとしています。しかし、それは機能していないようです。システム出力は、ファイルにリダイレクトされるのではなく、コンソールに表示されます。
できますがsystem "dir /a > out.txt"
、上記のコードが機能しない理由を知りたいです。
perl - バックティックを使用して呼び出した場合、Perl の変数に curl の出力を取得するにはどうすればよいですか?
perl の変数への curl 呼び出しの応答を取得しようとしています。
動作しません。これをコマンド ラインで実行すると、curl 呼び出しによってすべての出力がターミナルに正しく出力されますが、変数にはそのデータが入力されません。
Perl curl lib をインストールして呼び出さずにこれを行う方法はありますか?
perl - qx(コマンド)のタイムアウトを実装するにはどうすればよいですか?
このコードにタイムアウトを実装するにはどうすればよいですか。「hwinfo --usb」コマンドが一定時間経過しても何も返さなかった場合は、(コマンドを停止して) サブ _usb_device から戻るか終了します。
perl - Perlの組み込みのバックティック演算子をモックするにはどうすればよいですか?
バックティックを使用している私のPerlプログラムを単体テストしたいと思います。バックティックをモックして、外部コマンドの実行とは異なることを行う方法はありますか?
別の質問は私が必要なものを示していますが、Rubyです。残念ながら、私はこのプロジェクトにRubyを使用することを選択できません。また、バックティックを避けたくありません。
ajax - Perlでforkしますが、子プロセスのシステムコールから終了ステータスを取得します
私がやること:
- cgiスクリプトへのajax呼び出しを行います。
- Cgiスクリプトはフォークしますが、親はすぐに応答メッセージを返します。
- 子はシステムコールを実行しますが、終了コードとエラーメッセージが必要です。
擬似コード:
私の問題:
($ SIG {CHLD} ='IGNORE')が原因で-1に設定されているため、qx()から正しいリターンコード($?)とエラーメッセージを取得する際に問題が発生しました。$ SIG {CHLD}ステートメントを削除すると、子が刈り取られるまで、クライアントWebページは親から応答メッセージを受信しません。
perl - qx内で__FILE__を使用する方法は?
次のように、Perlスクリプトの先頭に定数を割り当てようとしています。
__FILE__
演算子内で補間されないためqx
、これは失敗します。シェルを呼び出す__FILE__
前に補間するという、私が望むことをどのように達成できますか。readlink
注意:コマンドを中間変数内に格納することはできません。
perl - Perl -> qx(perlファイル)の戻り値の仕方
他のPerlファイルからPerlファイルの戻り値がどのように返されるかを知る必要があります.
私の最初のファイルでは、次のような文で2番目のファイルを呼び出します。
exit と return を使用してこのデータを取得しようとしましたが、できません。
何か案が?
linux - mod_perl2 スクリプトから特定のバイナリが実行され、他のバイナリは実行されません (ls の可視性と +x にもかかわらず)
Perl 5.10.1 を使用する CentOS 6.4 上の Apache 2.2。
mod_perl スクリプト内からリモート ディレクトリ リストを取得しようとしてdie qx(id)
いapache
ます。しかしssh
、ヘルプ情報を出力するためだけに、パラメーターなしで実行できるようにはなっていません。それが私がこの質問でどうするかを尋ねていることです-それはssh
接続できないことではありません.
死ぬ:
と:
死ぬ:
わかりました、それで、それを見つけて見ることができ、それに対する実行権を持っています (これは /usr/bin と /usr にも当てはまります)。
空の配列で死ぬので、試しました:
...これは次のように終了します:
どうしてこれなの?次の期待値を取得die qx(ssh)
または終了するにはどうすればよいですか。die qx(/usr/bin/ssh)
興味深いことに、bash プロンプトから次のメッセージが表示されます。
では...ls
利用できないアカウントから実行するにはどうすればよいssh
ですか? どちらもプログラムですが、なぜここで異なる動作をするのでしょうか?
更新: だけssh
ではありませんが、パターンがわかりません: gawk
、tar
、およびping
も機能しません。それでも、、、df
そしてls
すべてそうですdir
。pwd
しかし:
したがって、それらはすべて「x」ビットがすべて設定されており (「s」が 1 つある ping を除きますが、以下のエラー コードを参照してください)、たとえば、同一の ACLssh
を持っています。dir
では、なぜ出力を与えるべきssh
であり、失敗しても成功するのでしょうか? (フルパスまたは番号)gawk
dir
ls
更新: さらに厄介な/bin/gawk
ことに、同じメッセージがコード 256 で失敗し、/bin/tar
同様/bin/ping
にコード 512 で失敗します。
更新: OK、この部分は理にかなっています: コマンド ラインから失敗したバイナリを実行し、そのecho $?
直後に実行すると、 ssh
255 が返され、 2が返され、1 が返されます。これらは、mod_perl2 で取得したものの縮小バージョンです。ですので、リターンコードが 0 以外のものは動作しないようです。おそらくSTDERRに出力しているため、STDOUTは何もキャプチャしないため、空白が返されます。ping
tar
gawk
ああ、それが答えです-投稿します。
perl - qx内で関数を呼び出すことは可能ですか?
これが私が望むことをするちょっとしたPerlコードです:
を使用せずに同じ効果を達成することは可能$value
ですか? 何かのようなもの
2 番目のアプローチがうまくいかない理由はわかっています。それは単にアイデアを示すためです。