1

crontab から呼び出す次のシェルスクリプトがあります。これは、wget や find などのシェル コマンドを含む php コードを呼び出すまで正常に動作します。

#!/bin/sh
PATH=/opt/server/php/bin:/usr/bin/wget:/bin/egrep:/usr/bin/find
cd /opt/server/apache2/htdocs/webapp/ 
php oil refine job:handler

コマンドごとに、パスを検索するためにwhich コマンドを実行し、それをパス変数に追加しました。それにもかかわらず、コマンドが見つからず、次のようなメッセージが表示されます。

sh: wget: not found
sh: find: not found

どうすればこれを修正できますか? これが一般的な問題であることは知っていますが、ここでスタックオーバーフローに関する適切な説明が見つかりませんでした。また、bash と crontab からスクリプトを呼び出すと環境設定が異なる可能性があることはわかっていますが、いずれにしてもこれらのエラーが発生します。

4

1 に答える 1

1

これは、実行可能ファイル自体ではなく、実行可能ファイルを含むディレクトリPATHを表す文字列です。

おそらく、このようなものを使用します

PATH=/opt/server/php/bin:/usr/bin:/bin
于 2013-02-19T17:10:00.173 に答える