Comparaison chaine de characteres avec variab

Résolu
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. Modérateur
    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 ;-))
    1. 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