WEB相談室

Webページ作成に関しての何でも掲示板です。

タイトル:コマンド名が誤っていた場合などのエラー出力を取得したい

0:[投稿] saito [2003/12/16 17:04 ][環境:Win2000 Unix(Solaris)]

Perl(5.6.0)を使用していますが、
コマンド名が誤っていた場合などのエラー出力をファイルハンドルで受け取ることは可能でしょうか?
例えば
open(OUT,$cmd." 2>&1 |");
を使用した場合、
$cmd が "ls -l 存在しないファイル 存在するファイル" である時は、標準出力、標準エラー出力共に受け取れていると思いますが、
$cmd が "lls -l ファイル名" である時は、出力される文字列を受け取る事ができません。
受け取る方法がありましたら、教えて下さい。
宜しくお願いします。


1:[回答] AC [2003/12/16 20:45 ]

open OUT, "$cmd 2>&1 |" or die "$!";
でエラー原因を知るのが普通と思いますが、pipeからシェルのエラーメッセージを
知りたいのであれば
open OUT, "($cmd) 2>&1 |" or die "$!";
あたりか。

なお、外部から任意のコマンドを実行されることがないよう細心の注意を
払う必要があります。


2:[完了] saito [2003/12/17 09:21 ]

pipeからシェルのエラーメッセージを知りたかったので、
「open OUT, "($cmd) 2>&1 |" or die "$!";」
で解決しました。
ご回答ありがとうございます。

回答(必須): 状態:

お名前(必須):

e-mail:

URL:




[戻る]

ChaichanPAPA's World