URL: https://linuxfr.org/forums/programmation-shell/posts/chaine-de-caract%C3%A8res Title: Chaine de caractères Authors: canardpc Date: 2006年05月20日T09:43:30+02:00 Tags: Score: 0 Bonjour, je manipule des chaines de caractères - de la forme "APPEND nom" ou "01 ELEMENT" - en les découpant suivant le résultat de test. Mais j'ai un problème sur les tests. En effet le shell étant non-typés il y a quelques surprises avec les chaines. [code] chaine=`expr substr "${ligne}" 1 6` if [ "$chainelu" = "APPEND" ] [/code] donc chaine contient APPEND ou 01 ELE mais le test ne fait rien!! Soit que c'est toujours vrai suivant l'ajout de "" ("`expr substr "${ligne}" 1 6`") soit il plante - erreur de syntaxe- du fait à priori qu'il considère que la chaine "01 ELE" c'est 01 puis ELE... J'avais le m^mee problème avec ligne mais cela c'est réglé avec des guillemets sauf que la j'ai essayé les guillements, quote, backquote. mais rien ne fonctionne. Que puis je faire ? J'ai pensé faire chaine=`expr substr "${ligne}" 1 2` ainsi le test s'effecturait sur AP mais cela ne me plait pas et je trouve cela du bricolage(je pense qu'on peut faire mieux!!) sans aucune garantie pour la suite de ne pas avoir (AP ELEMENT par exemple). J'ai aussi voulu passé par un case mais la il ne fait rien du tout ce n'est jamais égale!! [code] case "$chaine" in "APPEND") echo "---------append--------------" ;; "END") echo "-------------END--------------" *) echo "lignes" esac [/code] Merci pour toutes suggestions ou remarque sur les chaines de caractères en shell(J'ai charché des infos sur le net mais tous ce ressemble et n'apportent pas d''exemple concluant). C