[linux-l] Bash + LANG - einen hab' ich noch ...

Lutz Meinert lutz.meinert at madvedge.de
So Mai 30 21:49:27 CEST 2004


Am So, den 30.05.2004 schrieb Pascal Volk um 12:14:

> Das ist eine Änderung am System. Wann SuSI diese einliest kann ich Dir
> nicht sagen, jedoch spätestens nach einem Reboot. Das kannst Du aber
> nebenbei testen. Öffne Dir dazu ein Xterm und tippe vor der Änderung an
> der /etc/sysconfig/language 'echo $LANG' ein. Nach der Änderung wieder.
> Dann siehtst Du ob sie gleich wirksam wurde.
 
Das verrückte ist, dass LANG wirklich neu gesetzt wurde und der
Bash-Fehler - auch ohne UTF-8-Zuweisung - auftritt:

lutz at p10:echo $LANG
de_DE at euro
lutz at p10:~/Tmp> touch aa ll zz AAA LLL ZZZ
lutz at p10:~/Tmp> ls
aa AAA ll LLL zz ZZZ
lutz at p10:~/Tmp> rm [a-z]*
lutz at p10:~/Tmp> ls
ZZZ

Dieses Phänomen tritt so bei SuSE 9.1  auf.


Bei SuSE 8.1 der gleiche Ablauf. Die Variable LANG ist hierbei ebenso
auf "de_DE at euro". Nur stimmt hier das Ergebnis. Warum???

lutz at merlin:echo $LANG
de_DE at euro
lutz at merlin:~/Tmp> touch aa ll zz AAA LLL ZZZ
lutz at merlin:~/Tmp> ls
AAA LLL ZZZ aa ll zz
lutz at merlin:~/Tmp> rm [a-z]*
lutz at merlin:~/Tmp> ls
AAA LLL ZZZ


Erst nach Neuzuweisung von LANG auf "C" oder "posix" funktioniert's dann
auch bei SuSE 9.1

lutz at p10:LANG=C
lutz at p10:echo $LANG
C
lutz at p10:~/Tmp> touch aa ll zz AAA LLL ZZZ
lutz at p10:~/Tmp> ls
aa AAA ll LLL zz ZZZ
lutz at p10:~/Tmp> rm [a-z]*
lutz at p10:~/Tmp> ls
AAA LLL ZZZ 

Dieses Phänomen habe ich auf zwei weiteren Rechner mit SuSE 9.1
reproduzieren können. Übrigens tritt der Fehler nur bei normalen Nutzern
auf. Als root auf der login-shell angemeldet, verhält sich die Shell
korrekt. Hier ist die Variable LANG nicht definiert:

p10:~/Tmp # echo $LANG

p10:~/Tmp #
p10:~/Tmp # touch aa ll zz AAA LLL ZZZ
p10:~/Tmp # ls
aa AAA ll LLL zz ZZZ
p10:~/Tmp # rm [a-z]*
p10:~/Tmp # ls
AAA LLL ZZZ

Doch selbst wenn ich als normaler User die Variable ebenso undefiniert
belasse, tritt der übliche Fehler auf:

lutz at p10: LANG=
lutz at p10:echo $LANG

lutz at p10:~/Tmp> touch aa ll zz AAA LLL ZZZ
lutz at p10:~/Tmp> ls
aa AAA ll LLL zz ZZZ
lutz at p10:~/Tmp> rm [a-z]*
lutz at p10:~/Tmp> ls
ZZZ

Beste Grüße,
Lutz
-- 
Lutz Meinert <lutz.meinert at madvedge.de>
Mörchinger Str.52
14169 Berlin
Tel. +49 (0)30 - 81 29 50 44
Mobile 0173 916 48 80




Mehr Informationen über die Mailingliste linux-l