myscript.sh
などのコマンドを呼び出すシェルスクリプトがありますmycmd
。たとえば、端末でスクリプトを実行すると、./myscript.sh
すべてがうまく機能します。
しかし、crontabにスクリプトを追加すると、出力は空ですmycmd
。私が電話したとき、/usr/local/bin/mycmd
すべてがmyscript.sh
正常に戻った。
それでは、実行可能ファイルへの絶対パスを使用する必要があるのはなぜですか?$PATH
「cron-bash」にないからですか?
ベストアンサー1
あなたは正しいです。環境にはおそらく含まれていないcron
環境があります。スクリプトの次の場所にディレクトリを追加すると、この問題を解決できます。PATH
/usr/local/bin/
PATH
PATH="$PATH:/usr/local/bin/"
しかし、ベストプラクティスは(例えば)便利に呼び出される悪意のある設計されたプログラムですcp
。PATH
/bin