Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile


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  smile

Hors ligne

#4 Le 14/03/2017, à 12:08

cqfd93

Re : problème erreur if en Bash

Bonjour,

chanut a écrit :

Merci je suis un c*****

Juste un chanut wink


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 ...... wink

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