Messages d'eereurs en shell - Page 2

Précédent
  • 1
  • 2
  1. Shargat
     
    L'algo est dans les commentaires. Dans un éditeur qui colore les lignes c'est lisible.
    EN effet j'ai changé la lecture d'un élément du tableau.

    Le message d'erreur reste : unary operator expected

    Pourtant j'ai essayé d'initialiser la première case du tableau.
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      L'algo est dans les commentaires
      Oui ça j'avais vu, mais comme c'est pas très clair pour moi...

      Reprends chaque ligne de commentaire et en regard mets ce que tu veux (voudrais) obtenir (en extrapolant le résultat des variables en fonction de celles sont sensées contenir) s'il te plaît, merci ;-)
      0
  2. Shargat
     
    DEBUT
    #création du fichier ventesdate_du_jour.txt

    #écriture des deux premières lignes dans le fichier
    afficher("blablabla")
    afficher("blablabla")

    #initialisation des vraiables
    k <--0
    j <--0
    i <-- 0
    montantTotal <--0
    tableau <-- 0

    tant que (i <= nbLignes du fichier ventesJour.txt)
    faire
    reference <-- (la reference du produyit de la ligne i)
    #verification que referejnce n'a pas deja ete traitee
    tant que ((tableau[j] != reference) OU ( j < k )
    faire
    j++
    ftq

    #si j=tailleTableau alors reference pas trouvee et on la traite
    si ( j = k ) alors
    traitement des montants et quantites
    fsi

    #on passe a la ligne suivante
    i++
    ftq

    FIN
    0
  3. Shargat
     
    Mais il semblerait que l'erreur se trouve sur le test du second while :

    while [ $tableau[$j] -ne $reference ] || [ $j -lt $k ]
    	do
    		let j=$j+1
    	done
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Shargat
     
    PLutot

    while [ ${tableau[$j]} -ne $reference ] || [ $j -lt $k ]
    do
    let j=$j+1
    done
    0
  6. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    Déjà il y a une erreur dans : nbLigneTotal=`wc -l ventesJour.txt`
    La sortie de cette commande ne renvoie pas un nombre seul, mais un nombre suivi du nom du fichier, donc forcément le test qui s'en suit foire ;-((

    Mieux vaut utiliser la syntaxe : cat ventesJour.txt | wc -l

    Autre chose, mieux vaut privilégier la syntaxe $(commande) plutôt que l'emploi des quotes inversées `commande`...
    donc :
    nbLigneTotal=$(cat ventesJour.txt | wc -l)
    et dans le même esprit :
    date_du_jour=$(date +"%D)

    Il y a aussi une erreur dans le test suivant : while [ i -le nbLigneTotal ]
    Il manque le signe "$" à ta variable "while [ i -le $nbLigneTotal ]"

    Change ça déjà et puis on verra...

    -1
    1. Darkito Messages postés 1191 Date d'inscription   Statut Membre Dernière intervention   545
       
      Et jipicy arriva !
      Je ne suis qu'un jeune padawan en shell à coté de toi !
      Tu m'avais pas mal dépanné il y a quelques mois.
      =o)
      --
      Tøƒ
      0
Précédent
  • 1
  • 2