Caractères spéciaux dans les scriptes

Bonjour à tous,

J'utilise debian, et j'ai déjà été plusieurs fois ennuyée par des caractères spéciaux dans mes scriptes bash.

Cette fois je veut comparé le mois actuel avec "décembre" ou "janvier" et comme `date`me retourne quelque chose comme "mercredi 16 décembre 2009, 16:35:10 (UTC+0100)"

Dans mon scripte je fais :
[ "$mois" = "décembre"] && echo " mois de decembre"

et lorsque j'exécute le scripte, il me sort bien ce qu'il faut , mais il réagit mal au caractère spécial et donc il interprête le scripte comme si j'avais écris :
[ "$mois" = "décembre"]] && echo " mois de decembre"

et me donne une erreur, et chaque fois que je réouvre mon scripte, j'ai ce deuxième ] qui apparaît bel et bien.

Comment faire pour m'en sortir une fois pour toute avec ces fichus caractères spéciaux dans les scriptes ?

Merci d'avances pour vos réponses

Ivy
Configuration: Windows XP
Firefox 3.0.15

4 réponses

  1. problème d'encodage ?
    tu écris tes scripts sur Debian ?
    si c'est le cas
    su -c 'dpkg-reconfigure locales'

    et choisis fr_FR.UTF-8 comme valeur par défaut (si tu es en France).
    Il faudra au moins réinitialiser ta session, voire redémarrer ta machine, et ré-encoder tes scripts avec iconv (tu peux d'ailleurs peut-être déjà commencer par ça, d'autant plus si tu n'écris pas tes scripts sur Debian, ainsi que les passer à fromdos (cf. man tofrodos, s'il est installé))

    __
    et bonne fête Alice.
    1. Salut qqchquicommenceparQ,

      Oui je les écris sur debian, mais manifestement si je les fait avec unbuntu et que je les déplace après, le problème est le même.

      Arf donc je suis obligée d'installer ça, il n'existe pas de caractère d'échappement ou quelque chose dans le genre ?

      Ivy
      1. Modérateur
        Si tu dois convertir des scripts, utilise iconv
        ohand@hathor:~/techo -n "éàé" > brol
        johand@hathor:~/tmp$ iconv -f utf8 -t iso8859-1 brol -o brol.iso
        johand@hathor:~/tmp$ ls -ltr
        total 0
        -rw-r--r-- 1 johand johand 6 2009-12-18 08:58 brol
        -rw-r--r-- 1 johand johand 3 2009-12-18 08:58 brol.iso
        johand@hathor:~/tmp$ cat brol.iso
        ��johand@hathor:~/tmp$
        johand@hathor:~/tmp$ uname -a
        Linux hathor 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009 i686 GNU/Linux
        johand@hathor:~/tmp$ dpkg -S $(which iconv)
        libc-bin: /usr/bin/iconv

        D'autre part, n'oublie pas l'espace devant le crochet fermant:
        johand@hathor:~/tmp$ truc="muche"
        johand@hathor:~/tmp$ [ "$truc" == "muche"] && echo OK
        bash: [: missing `]'
        johand@hathor:~/tmp$ [ "$truc" == "muche" ] && echo OK
        OK