Stefan Blechschmidt <[EMAIL PROTECTED]> writes:

> Ein kleines Skript das mir die Gr��e des Sicherungsvolumens berechnet,
> funktioniert nur wenn die Variabel '[EMAIL PROTECTED]' exportiert wird.
> Exports mit 'de_DE' oder 'C' funktionieren nicht. 
> Ich bekomme dann die Fehlermeldung " (standard_in) 1: parse error ".
> Kann sich das einer von euch erkl�ren?


Eines f�llt jedenfalls gleich auf:

> yes=$( (du -cb $(cat $pfad/redtux.yes)  2>/dev/null ) | grep insgesamt | awk '{print 
> $1}')
> no=$((du -cb $(cat $pfad/redtux.no) 2> /dev/null )| grep insgesamt | awk '{print 
> $1}') 

yes und no bleiben leeer, wenn die Sprache anders als deutsch ist.

> erg=$(echo "scale=10;($yes - $no) / 1024 / 1024" | bc)

Und das ergibt dann einen parse error von bc, wie Du ja feststellst.

> funktioniert nur wenn die Variabel '[EMAIL PROTECTED]' exportiert wird.
> Exports mit 'de_DE' oder 'C' funktionieren nicht. 

Klar ist, dass es mit [EMAIL PROTECTED] geht und mit LANG=C nicht
(vorausgesetzt, LC_MESSAGES und LC_ALL sind leer oder nicht existent).

Was sagt locale -a? Wenn de_DE nicht aufgef�hrt ist, w�re erkl�rt,
warum es damit nicht geht.

Noch was: Es ist generell schlecht, shell-Skripte zu bauen, die das
Vorhandensein von bestimmten locales voraussetzen. Das gilt sowohl f�r
de_DE als auch [EMAIL PROTECTED] Besser ist es, "C" oder "POSIX" zu
verwenden. Und Dein workaround: 

> export [EMAIL PROTECTED]

ist doppelt b�se, weil er 1) eine deutsche locale voraussetzt und 2)
eh ignoriert wird, falls LC_MESSAGES oder LC_ALL auf etwas anderes
zeigen.

Shell-Skripte, die Texte auswerten, sollten immer LC_ALL=C oder
LC_ALL=POSIX explizit setzen. LC_ALL �berschreibt die LC_- und LANG -
Variablen und C bzw. POSIX ist immer vorhanden.

HTH,

 Heike


-- 
Haeufig gestellte Fragen und Antworten (FAQ): 
http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an