LC_COLLATE=C echo *

Startseite

Nachricht beantworten
Autor: Edgar Bonet
Datum:  
To: Liste Guilde
Betreff: LC_COLLATE=C echo *
Bonjour !

J'ai un petit déboire avec bash. D'après le man :

    LC_COLLATE
        Cette  variable  détermine  l'ordre  des lettres lors du tri des
        chemins ainsi que le comportement  des  expressions  des  inter-
        valles,  des  classes  d'équivalences,  et  de la comparaison de
        chaînes lors de la recherche de motifs et le  développement  des
        chemins.


(« lors du tri des chemins » est « when sorting the results of pathname
expansion » en VO). Je fais

    export LC_COLLATE=C


pour avoir l'ordre asciibétique. Ensuite j'ai

    $ touch a B; ls; echo *
    B  a
    B a


sur une machine, alors que sur une autre

    $ touch a B; ls; echo *
    B  a
    a B


Visiblement ls comprend ce que je veux, mais bash pas toujours. Si je
fais

    cat /etc/mandrake-release; bash --version; locale


j'obtiens

    Mandrake Linux release 9.2 (FiveStar) for i586
    GNU bash, version 2.05b.0(1)-release (i586-mandrake-linux-gnu)
    Copyright (C) 2002 Free Software Foundation, Inc.
    LANG=en_US
    LC_CTYPE=en_US
    LC_NUMERIC="en_US"
    LC_TIME=en_US
    LC_COLLATE=C
    LC_MONETARY="en_US"
    LC_MESSAGES=en_US
    LC_PAPER=fr_FR
    LC_NAME=fr_FR
    LC_ADDRESS="en_US"
    LC_TELEPHONE="en_US"
    LC_MEASUREMENT=fr_FR
    LC_IDENTIFICATION=fr_FR
    LC_ALL=


sur l'une des machines, alors que sur l'autre j'ai... exactement la même
chose ! Si quelqu'un comprend...

-- 
Edgar Bonet           Maison : 04 76 21 29 16    Bureau : 04 76 88 10 96
3 rue Jean Prévost    Mobile : 06 77 19 79 39    Fax    : 04 76 88 11 91
38000 Grenoble        guilde@???     www.edgar-bonet.org