Comparaison chaine de characteres avec variab

Résolu
evita8 Messages postés 32 Statut Membre -  
evita8 Messages postés 32 Statut Membre -
Bonjour,

J'ai une question vraiment basique : je souhaite effectuer une comparaison de chaines dans mon script :

VAR=$(grep "$RACINE>$" $2)
# $2 : fichier passé en argument

echo $VAR me donne :
<Blabla> </Babla>

echo $RACINE me donne :
Blabla

Ma comparaison :

if [ "$VAR" = "<$RACINE> </$RACINE>" ] ; then
echo "ca marche"
else
echo "raté"

Ce que j'obtiens à l'exécution :

+ '[' '<Blabla>
</Blabla>' = '<Blabla> </Blabla>' ']'
+ echo 'raté'

Merci de m'aider !
Configuration: Mac OS X
Safari 525.13

1 réponse

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    C'est pas très clair ton problème là, il nous faudrait le véritable message d'erreur, parce que à 1ère vue, ta variable est interprétée comme ayant un saut de ligne au milieu, un peu comme la représentation ci-dessous (en gras):
    Ce que j'obtiens à l'exécution :
    
    + '[' '<Blabla>\n
    </Blabla>' = '<Blabla> </Blabla>' ']'
    + echo 'raté' 
    Affiches-nous le débogage de ton vrai script s'il te plaît, merci ;-))
    0
    1. evita8 Messages postés 32 Statut Membre
       
      J'ai résolu le problème finalement, merci jipicy !

      Au lieu de faire
      if [ "$VAR" = "<$RACINE> </$RACINE>" ]

      J'ai fait
      if [ $(cut -f1 -d ' ' <<< $VAR) = "<$RACINE/>" ]
      et un autre
      if [ $(cut -f2 -d ' ' <<< $VAR) = "</$RACINE>" ]

      Le problème précédent était sûrement du au saut de ligne dans VAR
      0