プロが教える店舗&オフィスのセキュリティ対策術

bshスクリプト内で、環境変数を参照する方法及び、パスを有効にする方法を教えて下さい。

このシェルスクリプトを手動実行するとうまく環境変数を読めるのですが、cronにて自動実行する時には、環境変数
を読むことができません。
またこの時コマンドも見つからないとでるので、パスも効いてないようです。

A 回答 (1件)

環境変数を読めないというより、その sh に対する環境変数が設定


されていないのでしょう。cron は最小限の環境変数しか設定して
いません。

バージョンによっては crontab 内で追加の環境変数を設定するこ
とができます。ただし、この場合には、cron から起動されるすべ
てのコマンドに同じ設定がされてしまいますので、それが不都合な
ら個別の設定が必要です。

個別に設定するには、シェルスクリプトを呼び出す時に
VAR1=value1 VAR2=value2 script arg1 arg2 arg3
というふうに必要な変数を列挙してやります。
あるいは、シェルスクリプト内で
VAR1=value1
VAR2=value2
と列挙してやります。この場合、シェル変数ではなく環境変数とし
て子プロセスにも与えたい場合は、export VAR1 を追加します。

パスに関しても、PATH 環境変数の設定の問題です。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございました。
なんか勘違いをしていたようで、cronの実行ユーザ
の環境が読み込まれると思っていました。
別途定義をシェル内で行うか、定義を記述したファイル
を読み込むかしないと駄目なんですね。
どうもありがとうございました。

お礼日時:2001/06/21 09:29

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!