アプリ版:「スタンプのみでお礼する」機能のリリースについて

CシェルコマンドをPerl上でsystem関数を使用し実行した時の、
エラーメッセージ抑制について教えてください。
ディレクトリ(DIR1をDIR2に)をコピーする際、
下記のようにしました。
system("cp -r DIR1 DIR2");
ここでもし、なんらかの原因でコピー失敗した場合、
「DIR1がありません。」などと、エラーメッセージが出力されます。
Cシェルでこの様なエラーメッセージを抑制するには
cp -r DIR1 DIR2 >& /dev/null と、
することによって、エラーメッセージの抑制は可能になります。
これと、同じ事をPerlで行いたいと思っています。
ご回答よろしくお願いします

A 回答 (1件)

system で起動するときに使うシェルは sh でしたっけ? だったら


cp -r DIR1 DIR2 > /dev/null 2>&1
です.
エラーメッセージだけを消すなら
cp -r DIR1 DIR2 2> /dev/null
でいいかもしれない.
    • good
    • 0
この回答へのお礼

system("cp -r DIR1 DIR2 2> /dev/null");
で、エラーメッセージの出力を抑制する事が出来ました。
実は質問する前に、system("cp -r DIR1 DIR2 >& /dev/null");
は、試してみたんですが、sh:エラー番号が不明です。
というエラーが出ていました。
shの意味はこういうことだったんですね・・
助かりました、有難うございました。

お礼日時:2008/12/18 23:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!