Am Montag, 23. Februar 2004 17:33 schrieb Thilo Gramlich:
Am Montag, 23. Februar 2004 15:23 schrieb Matthias Dort:
Ich könnte diese Variable in der crontab explizit setzen. (Vielleicht deswegen war in den vorherigen postings auch mal von dem Wort "Variable setzen" die Rede und die Vorschläge, Unix- und Linux-Bücher zu lesen, kammen wahrscheinlich auch von daher. ) Allerdings hat diese so gesetzte Variable mit der in der Shell-Umgebung nicht mehr zu tun, obwohl die beiden einen denselben Namen haben könnten.
Die Umgebung, die cron benutzt, hat NICHTS mit der Umgebung zu tun, die von einer Shell genutzt wird; wie schon zuvor geschrieben ist sie ziemlich abgestrippt. Das ist auch so gewollt, da cron nicht den ganzen Ballast von langen Pfaden und Dutzenden von Umgebungsvariablen mit sich herumschleppen soll.
Und um es noch deutlicher zu machen: _Jede_ Umgebungsvariable gilt grundsätzlich nur für die Shell, in der sie gesetzt (z. B. per source aus Konfigurationsdateien oder per "export VAR=WERT") wurde. Es gibt keine Umgebungsvariable, die sozusagen systemweit gilt.
Ich vermute, es geht Dir darum, daß mit einer Änderung alle Skripte, auch die cron-gesteuerten, die gleichen Werte für eine oder mehrere Umgebungsvariablen haben. Dann schlage ich vor, daß Du die entsprechende(n) Variable(n) in eine separate Datei auslagerst, die von allen Skripten (incl. den Login-Skripten) einfach per source eingelesen wird. An der Umgebung des cron würde ich nichts ändern.
ACK echo "export VAR=WERT" >>/pfad/zur/konfigdatei und dann im cronScript: . /pfad/zur/konfigdatei Jan