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 -
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 !
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:
- Comparaison chaine de characteres avec variab
- Comparaison million milliard - Accueil - Technologies
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
1 réponse
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):
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 ;-))
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