Pages : 1
#1 Le 14/03/2017, à 11:40
- chanut
problème erreur if en Bash
bonjour
Je doit faire un script bash mais mon if me retour une erreur :
declare -i ligne=0
declare -i Poids=0
....
do
echo "$ligne"
if [$ligne != 0];
then
Poids=$poids
fi
ligne=ligne+1
done
quand j'exécute j'ai ça :
0
./MAJ-Journee.sh: ligne 11: [0 : commande introuvable
1
./MAJ-Journee.sh: ligne 11: [1 : commande introuvable
je ne comprend pas mon erreur
Merci de votre aide
Modération : merci à l'avenir d'utiliser les balises code (explications ici).
Dernière modification par cqfd93 (Le 14/03/2017, à 11:54)
Hors ligne
#2 Le 14/03/2017, à 11:59
- pingouinux
Re : problème erreur if en Bash
Bonjour,
if [$ligne != 0];
Il manque des espaces (ce qui cause l'erreur), et des " " :
if [ "$ligne" != 0 ];
Hors ligne
#3 Le 14/03/2017, à 12:05
- chanut
Re : problème erreur if en Bash
Merci je suis un c*****
Mais merci
Hors ligne
#4 Le 14/03/2017, à 12:08
- cqfd93
Re : problème erreur if en Bash
Bonjour,
Merci je suis un c*****
Juste un chanut
− cqfd93 −
Hors ligne
#5 Le 14/03/2017, à 12:13
- petit_des_grands
Re : problème erreur if en Bash
et enlève le " ; " si y a aucune autre instruction sur la ligne ......
Hors ligne
#6 Le 14/03/2017, à 12:36
- MicP
Re : problème erreur if en Bash
Bonjour
Comme il s'agit d'entiers (declare -i …),
l'opérateur de comparaison devrait plutôt être -ne (not equal) =>
…
if [ $ligne -ne 0 ];
…
ou une autre méthode :
…
if ((ligne));
…
Comme il s'agit d'un entier je ne sais pas si les apostrophes sont vraiment indispensable.
=======
Ça pourait s'écrire :
…
do
echo "$ligne"
((ligne)) && Poids=$poids
((ligne++))
done
Dernière modification par MicP (Le 15/03/2017, à 11:52)
Hors ligne