例えば php のパスが環境によって、/usr/bin/php だったり、/usr/local/bin/php だったりするので、都度 cron を書き換える必要があって面倒。
(cronでパスを指定している場合です。スクリプト内でパスを設定するのは好みではない)
以下のように cron を記述することによって 動的にコマンドパスを設定 できるので、環境が変わった場合でも移植性が高まります。
cron起動時、/bin:/usr/bin にパスが通っているものとします。
パスの確認は 実際に記述しよとしている crontab に、下記のように書いて試してみると良いです。
* * * * * echo ${PATH} > /tmp/path.out
動作するサンプルと動作しないサンプルをそれぞれ2つずつ紹介します。
環境変数 ${PHP} に phpコマンドパスを動的に設定する
* * * * * PHP=`which php`; ${PHP} -r 'echo "php!";' > /tmp/php.out1
最初に phpコマンドパス を展開してしまう(おすすめ)
* * * * * `which php` -r 'echo "php!";' > /tmp/php.out2
環境変数 ${PHP} には `which php` という文字列が代入されるだけ
PHP=`which php` * * * * * ${PHP} -r 'echo "php!";'
which コマンドはフルパスで書いてはいけない
* * * * * `/bin/which php` -r 'echo "php!";' > /tmp/php.out2