PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit date() lokale Repräsentation



danifunny
28-10-2010, 09:28
Salü miteinander,

wie schon im Titel angedeutet, geht es bei meiner Frage um den Shell Aufruf date. Diesen nutze ich in verschiedenen Skripten um Logs mit Zeitstempeln und ähnlichem zu versehen.
Brauchen tu ich dann unter anderem folgende Syntax:

(date +%a\ %d.%b.%Y\ %H:%M:%S)

Im Terminal ergibt mir diese Syntax folgenden Output:
Do 28.Okt.2010 10:25:23

Rufe ich die Skripte mit diesen date-Befehlen aber via WebBrowser (cgi) auf, erzeugt es mir folgenden Output:
Thu 28.Oct.2010 10:25:23


Habt ihr eine Erklärung dafür woran es liegt dass über den cgi-Aufruf die lokale Repräsentation auf Englisch und im Terminal auf Deutsch gemacht wird?

Vielen Dank schon jetzt für eure Antworten
mfg
danifunny

jeebee
28-10-2010, 12:12
vermutlich ist LANG nicht auf de_DE gesetzt, wenn das Skript per cgi aufgerufen wird.

Das kannst du ändern indem du oben im Skript LANG=de_DE.utf8 setzt.

danifunny
28-10-2010, 13:14
habe die zeile

LANG=de_DE.utf8

oben beim cgi eingefügt... ohne Auswirkung auf den Output!

John W
28-10-2010, 13:42
"export LANG=de_DE.utf8"

danifunny
28-10-2010, 14:40
"export LANG=de_DE.utf8"

auch nicht :(...

undefined
28-10-2010, 17:18
Wenn es sich um ein Shellscript handelt und du es als CGI verwendest werden Shell Variablen nicht in den Globalen Namensraum geschrieben.
Weil sie zu dem Zeitpunkt in der CGI Schnittstelle eingesperrt sind.
Du mußt diese Umgebungsvariablen vor der Ausführung setzen.
http://www.webthing.com/tutorials/cgifaq.2.html#3
http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv

danifunny
04-11-2010, 09:03
Vielen Dank für die Antwort undefined, habe mir auch die beiden Links gegönnt, jedoch stehe ich irgendwie auf dem Schlauch, denn weiss nicht wie ich den SetEnv Befehl ausführen muss (Ort? Syntax?) :S...