web-dev-qa-db-ja.com

crontabで「export」コマンドを使用したスクリプト

私はこれをcronタブに持っています:_* * * * * /root/attente.sh_とattente.sh:export attente=$(cat /root/switchboard.txt)

シェルでexport attente=$(cat /root/switchboard.txt)を実行すると、機能しますが、cronジョブでは機能しません。

何かアイデアはありますか?

2
Bryan

Linux/Unixで環境変数が機能する方法はプロセスごとであり、システム全体ではありません。

したがって、環境変数を設定すると、それを設定したプロセスにのみ影響します。

エクスポートすると、そのプロセスから生成されたプロセスで保持されることを意味します。したがって、シェルまたはシェルスクリプトでは、エクスポートされた環境変数は、そのシェルから起動されたコマンドで使用できます。

ただし、特定のプロセスで設定した環境変数は、すでに実行されているプロセスや、変数がエクスポートされたプロセス以外の他のプロセス(シェル、シェルスクリプトなど)から生成されたプロセスには影響しません。

したがって、そのcronからシェルの環境を更新するつもりだった場合、残念ながらそれはそのようには機能しません。

1
filbranden

私はついに回避策を見つけました。変数を保存しません。アスタリスクでFILE関数と比較します。値を含むファイルの最初の行は、値が異なる他のファイル(1つのファイルが「1」、別のファイルが「2」など)と比較されます。最初の行。しかし、誰かが最初の質問の解決策を持っているなら、私はまだ興味があります。

ありがとう

0
Bryan