Bash et comparaison de chaines de caractères
barjoray
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je lutte depuis un moment pour faire un truc simple : comparer deux chaines de caractères, j'ai essayé bon nombre de trucs mais sans résultats
#!/bin/bash
points="point"
if ["$points" == 'point']; then
echo "ok"
else
echo "pas ok"
fi
Ce code me renvoie une erreur et passe ensuite par le "pas ok".
+ [point == point]
import.sh: 1: [points: not found
+ echo pas ok
pas ok
Avez-vous idée du pourquoi?
Merci beaucoup,
Je lutte depuis un moment pour faire un truc simple : comparer deux chaines de caractères, j'ai essayé bon nombre de trucs mais sans résultats
#!/bin/bash
points="point"
if ["$points" == 'point']; then
echo "ok"
else
echo "pas ok"
fi
Ce code me renvoie une erreur et passe ensuite par le "pas ok".
+ [point == point]
import.sh: 1: [points: not found
+ echo pas ok
pas ok
Avez-vous idée du pourquoi?
Merci beaucoup,
3 réponses
-
Salut,
La syntaxe est très stricte en bash.
Il faut des espaces avant et après chaque crochet (ouvrant et fermant).
Le comparateur est un signe "égal" simple (=) :
#!/bin/bash points="point" if [ "$points" = 'point' ]; then echo "ok" else echo "pas ok" fi
-
Yahoo! Ca marche merci, je pensais pourtant avoir déjà essayé en rajoutant les espaces, en enlevant le deuxième "=" et encore tout plein d'autre chose,
Merci encore! -
bonjour
j'essaié de modifier ton code et ça marche
éssaie avec ce code
#!/bin/bash
points=point
if test $points == "point"
then
echo "ok"
else
echo "pas ok"
fi
bon courage