Comparaison chaine de characteres avec variab

Résolu/Fermé
Signaler
Messages postés
32
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
26 mai 2008
-
Messages postés
32
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
26 mai 2008
-
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 !

1 réponse

Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 890
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 ;-))
Messages postés
32
Date d'inscription
jeudi 27 mars 2008
Statut
Membre
Dernière intervention
26 mai 2008

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