- ベストアンサー
shでの環境変数参照方法
bshスクリプト内で、環境変数を参照する方法及び、パスを有効にする方法を教えて下さい。 このシェルスクリプトを手動実行するとうまく環境変数を読めるのですが、cronにて自動実行する時には、環境変数 を読むことができません。 またこの時コマンドも見つからないとでるので、パスも効いてないようです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
環境変数を読めないというより、その sh に対する環境変数が設定 されていないのでしょう。cron は最小限の環境変数しか設定して いません。 バージョンによっては crontab 内で追加の環境変数を設定するこ とができます。ただし、この場合には、cron から起動されるすべ てのコマンドに同じ設定がされてしまいますので、それが不都合な ら個別の設定が必要です。 個別に設定するには、シェルスクリプトを呼び出す時に VAR1=value1 VAR2=value2 script arg1 arg2 arg3 というふうに必要な変数を列挙してやります。 あるいは、シェルスクリプト内で VAR1=value1 VAR2=value2 と列挙してやります。この場合、シェル変数ではなく環境変数とし て子プロセスにも与えたい場合は、export VAR1 を追加します。 パスに関しても、PATH 環境変数の設定の問題です。
お礼
早速のご回答ありがとうございました。 なんか勘違いをしていたようで、cronの実行ユーザ の環境が読み込まれると思っていました。 別途定義をシェル内で行うか、定義を記述したファイル を読み込むかしないと駄目なんですね。 どうもありがとうございました。