Linuxのコマンドの戻り値ってどういう意味があるの?
問題
Linuxのコマンドの戻り値って何か意味があるの?
答え
Linuxのコマンドを、php から exec('unzip hoge.zip');
みたいに呼ぶことがあると思います。
下のように、第2、第3引数を渡しておくと、コマンドの出力結果、終了コード(戻り値)を入れてくれます。
exec('unzip hoge.zip', $r, $e);
コマンドはphpの関数ではないので、phpのエラーログなどにはエラーは残らず、コマンドのエラーを知りたいときは、この出力と戻り値を見ることになります。
この戻り値ですが、0が正常、エラーがあった時に0以外になるのが一般的です。
では、0以外のとき、どう読み取ればよいのかというと、それはコマンドによります。
phpの関数なら、php.net(マニュアル)を見るように、
Linuxのコマンドだったら、man page(やっぱりマニュアル)を見ましょう。
サーバーにログインしたら man unzip とコマンドを入力するとマニュアルが表示されます。
Web上でもマニュアルページがゴロゴロ転がっているのですぐ見つかります。
unzipコマンドが 3 と返して来たらファイルが壊れている、9ならファイルがないなどがわかります。
コメント