• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Wochentag in Scriptausgabe auf Deutsch

Hallo,

immer wieder entdecke ich, daß Scripte, die z.B. von Cron gestartet werden und in eine Logdatei schreiben, Wochentage auf Englisch statt auf Deutsch ausgeben. Ich hatte jetzt geändert:

im /etc/sysconfig-Editor: System -> Environment -> Language
RC_LC_ALL auf de_DE
ROOT_USES_LANG von ctype auf de_DE.

Nun hat auch Root sämtliche deutsche Formatierungen von Datum etc., allerdings bleiben Datums- bzw. Wochentagsausgaben in Scripten, die ich nicht manuell starte, auf Englisch.

Wo bzw. wie kann ich erzwingen, daß ich auch hier z.B. Sam statt Sat ausgegeben bekomme? Muß ich noch eine Umgebungsvariable setzen oder ist die Umgebung, in der ein Script abläuft, davon unabhängig und ich muß umständlich im Script selber dafür sorgen?

Linuxfan
 
Linuxfan schrieb:
Nun hat auch Root sämtliche deutsche Formatierungen von Datum etc., allerdings bleiben Datums- bzw. Wochentagsausgaben in Scripten, die ich nicht manuell starte, auf Englisch.
Keine gute Idee. Gerade Logdateien sollten weiter mit der Locale C bzw. POSIX erstellt werden da diverse Tools von dieser Locale ausgehen.

Linuxfan schrieb:
Wo bzw. wie kann ich erzwingen, daß ich auch hier z.B. Sam statt Sat ausgegeben bekomme? Muß ich noch eine Umgebungsvariable setzen oder ist die Umgebung, in der ein Script abläuft, davon unabhängig und ich muß umständlich im Script selber dafür sorgen?
Ja, bei cronjobs müssen die Variablen manuell im Skript gesetzt werden.
 
Aha, gut zu wissen, danke für den Tipp!
Ich habe also schnell wieder RC_LC_ALL und ROOT_USES_LANG zurückgesetzt.
Wie setze ich die Variable manuell im Script, mit export LC_TIME=de_DE?

Linuxfan.
 
Das bringt nur leider nichts, wenn ich die Variabel so setze, der Wochentag erscheint dann noch immer auf Englisch. Ich habe jetzt in meinem Script nachgearbeitet, so habe ich manuell für die gewünschte Ausgabe gesorgt:

Code:
Tag="$(/bin/date -d @$1 +%u)"
case $Tag in
   1)
     WT="Montag"
     ;;  
   2)
     WT="Dienstag"
     ;;
   3)
     WT="Mittwoch"
     ;; 
   4)
     WT="Donnerstag"
     ;;  
   5)
     WT="Freitag"
     ;;
   6)
     WT="Samstag"
     ;;  
   7)
     WT="Sonntag"
     ;;
esac
echo $WT
Linuxfan
 
Oben