Perlスクリプトを使用して、特定の方法で構成されたサブシェルが必要なコンパイル済みプログラムを構成および生成します。$returncode = system("ulimit -s unlimited; sg ourgroup 'MyExecutable.exe'");
そこからSTDOUTをキャプチャして解析したいのですが、ジョブの実行中に出力を確認できるように、分岐する必要があります。この質問は近いです:
Perl 出力を STDOUT と変数の両方に送信するにはどうすればよいですか? 最高評価の回答はbacktick()
、子プロセスを作成し、 をキャプチャしSTDOUT
、その中で を使用してコマンドを実行するという関数について説明していexec()
ます。
しかし、私が持っている呼び出しでは、シェルを構成するために複数の行が必要です。1 つの解決策は、使い捨てのシェル スクリプトを作成することです。
#disposable.sh #!/ビン/sh ulimit -s 無制限 sg ourgroup 'MyExecutable.exe'
backtick(disposable.sh)
その後、またはのいずれかで必要なものを取得できましたopen(PROCESS,'disposable.sh|')
。
しかし、私はこのためにスクラッチ ファイルを作成したくありません。system()
複数行のコマンド文字列を喜んで受け入れます。どうすれば同じことを取得exec()
または実行できopen()
ますか?