やや厄介な問題があります。crontab で、特定のプログラムにディレクトリのプレフィックスを付けたいのです。PATH私のプログラムのベース名は一意ではないため、これらすべてのディレクトリをに追加することはできません(そしてディレクトリはそれらを明確にするはずです)。私が望むものの例は、説明する最も簡単な方法です:
PATH=/data/some/place/bin:/usr/local/bin:/bin:/usr/bin
*/15 * * * * foomatic/featurizer > /dev/null 2>&1
*/15 * * * * barmatic/featurizer > /dev/null 2>&1
もちろん、ディレクトリfoomatic/とbarmatic/が両方とも の下/data/some/place/binにあり、両方に という有効なプログラムがあるにもかかわらず、これは機能しませんfeaturizer。
私が考えることができる唯一のことは次のとおりです。
PATH=/usr/local/bin:/bin:/usr/bin
B=/data/some/place/bin
*/15 * * * * $B/foomatic/featurizer > /dev/null 2>&1
*/15 * * * * $B/barmatic/featurizer > /dev/null 2>&1
しかし、それはちょっと醜いです。
別の方法として、各featurizerプログラムの前に「eg 」foomatic_または「」を付ける方法がありますbarmatic_。この場合、すべてのディレクトリをパスに追加できますが、これも好きではありません (実際には、そのようなプログラムがたくさんあります)。
のどこかで有効なコマンドとしてbash理解するためのトリックはありますか?foomatic/featurizerPATH