2
cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php

したがって、コンソールからこのコードを実行すると、$? の正しい値が得られました。$_ の場合

$? - exit status $_ - 前のコマンドに最後の引数を与えます。シェルの起動時に、実行中のシェル スクリプトの絶対ファイル名を指定します。

しかし、このコードを cronjob に入れると:

crontab -e
*/1 * * * * cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php

空の $_ を取得しました。助けてください。私は何が問題なのか理解できませんか?

4

1 に答える 1

2

次の行を crontab に追加して、crontab のデフォルト シェルを /bin/sh から /bin/bash に変更します。

SHELL=/bin/bash
于 2012-07-30T14:02:49.643 に答える