Test égalité bash
Résolu
Dabou
-
Dabou -
Dabou -
Bonjour,
Je bosse actuellement sur un petit script, mais je rencontre un souci de test d'égalité... c'est bête, mais je ne trouve pas où je me trompe.
L'idée, c'est que quand je récupère un nombre paire, je le détecte, tout simplement.
Le résultat est le suivant :
0
test.sh: 17: [0: not found
Le RESULT est donc bien à 0 (de temps en temps il passe à 1, selon les paramètres en entrée), mais pourtant, il n'arrive pas à faire le test.
J'ai aussi essayé
mais ça me donne le même résultat...
Bref, si quelqu'un a une idée :)
Merci !
Je bosse actuellement sur un petit script, mais je rencontre un souci de test d'égalité... c'est bête, mais je ne trouve pas où je me trompe.
RESULT=$((NB%2)) echo $RESULT if ["$RESULT" = "0"] then echo "ici" fi
L'idée, c'est que quand je récupère un nombre paire, je le détecte, tout simplement.
Le résultat est le suivant :
0
test.sh: 17: [0: not found
Le RESULT est donc bien à 0 (de temps en temps il passe à 1, selon les paramètres en entrée), mais pourtant, il n'arrive pas à faire le test.
J'ai aussi essayé
if [$RESULT -eq 0]
mais ça me donne le même résultat...
Bref, si quelqu'un a une idée :)
Merci !
A voir également:
- Bash if -f
- Sfc /scannow /f /r - Guide
- Bingo bash - Télécharger - Divers Jeux
- Bash addition ✓ - Forum Shell
- F panel carte mere - Forum Matériel & Système
- Chkdsk c /f /r - Guide
3 réponses
L'opérateur = en bash teste une égalité sur les chaînes de caractères.
Pour des valeurs numériques il faut utiliser -eq.
La syntaxe bash étant particulièrement pointilleuse, il faut mettre un espace autour des caractères [ et ] sinon ça ne marchera pas.
ou
Bonne chance
Pour des valeurs numériques il faut utiliser -eq.
La syntaxe bash étant particulièrement pointilleuse, il faut mettre un espace autour des caractères [ et ] sinon ça ne marchera pas.
# chaîne de caractères if [ $RESULT = 0 ] then #.... fi
ou
# valeur numérique if [ $RESULT -eq 0 ] then #.... fi
Bonne chance