• [^] # Re: Remplace les doubles crochets par des simples dans ton test , et mettre un espace ...

    Posté par . En réponse au message Problème de script SHELL. Évalué à 2.

    C'est parce que par défaut, bash considère que l'espace est un séparateur de champ, donc il ne le traite pas comme un caractère.

    Pour que ça fonctionne, il te faudrait faire avant ta boucle while :

    OLDIFS=IFS
    IFS=''

    Tu sauvegardes l'ancienne valeur du séparateur de champ (variable IFS), et tu la set à ''

    Ensuite tu fais ta boucle while, et après la boucle while, tu restitues l'ancienne valeur (pour éviter les problèmes si la suite de ton script s'attend à avoir un séparateur de champ standard) :

    IFS=OLDIFS

    Voici ce qu'en dit la man de bash:

    IFS The Internal Field Separator that is used for word splitting after expansion and to split lines into words with the read builtin command. The default value is ``''.