Comparaison chaine de characteres avec variab

Résolu
evita8 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -  
evita8 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

1 réponse

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
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
evita8 Messages postés 32 Date d'inscription   Statut Membre Dernière intervention  
 
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